Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.03.2011, 12:23
ivan.renzhin вне форума Посмотреть профиль Отправить личное сообщение для ivan.renzhin Найти все сообщения от ivan.renzhin
  № 1  
Ответить с цитированием
ivan.renzhin

Регистрация: Mar 2011
Сообщений: 2
По умолчанию Построить абрис объекта

Добрый день, не знаю как подойти к задаче. есть изометрический мир, есть 2 точки на карте, с разными координатами. Во второй точке стоит объект, для упрощения в форме куба, из 1 точки во вторую строится прямая и перпендикулярно ей строится плоскость, вопрос, как можно получить площадь абриса объекта на плоскости? ну или координаты точек на плоскости?


Последний раз редактировалось ivan.renzhin; 30.03.2011 в 12:57.
Старый 30.03.2011, 14:39
Idon вне форума Посмотреть профиль Отправить личное сообщение для Idon Найти все сообщения от Idon
  № 2  
Ответить с цитированием
Idon

Регистрация: Sep 2009
Сообщений: 65
Мне кажется, надо повернуть точку 1, относительно точки 2, на такие углы, чтобы точка 1 совпала с точкой 2. То есть плоскость абриса была бы параллельна плоскости экрана.
А затем выполнить поворот всех точек объекта на эти углы.

Старый 30.03.2011, 14:49
ivan.renzhin вне форума Посмотреть профиль Отправить личное сообщение для ivan.renzhin Найти все сообщения от ivan.renzhin
  № 3  
Ответить с цитированием
ivan.renzhin

Регистрация: Mar 2011
Сообщений: 2
Это логично, но дело как раз все в этом надо вычислить угол поворота 3д матрицы, направление "камеры" можно узнать перемножив вектора точек, так?

Добавлено через 1 час 43 минуты
да здравствует openGL

Код AS3:
private function lookAt(eye:Vector3D, look:Vector3D, up:Vector3D):Matrix3D {
	var n:Vector3D = eye.subtract(look);
	var u:Vector3D = up.crossProduct(n);
	var v:Vector3D = n.crossProduct(u);
 
	n.normalize();
	u.normalize();
	v.normalize();
 
	var d:Vector3D = new Vector3D(-eye.dotProduct(u), -eye.dotProduct(v), -eye.dotProduct(n));
 
	var matrixArr:Array = [
		u.x, u.y, u.z, d.x, 
		v.x, v.y, v.z, d.y, 
		n.x, n.y, n.z, d.z, 
		0,   0,   0,   1
	];
 
	var matrixVector:Vector.<Number> = new Vector.<Number>;
	matrixVector.push.apply(matrixVector, matrixArr);
 
	var m:Matrix3D = new Matrix3D(matrixVector);
	m.transpose();
	return m;
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
3d , геометрия
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.