|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Nikita Kiryanov 2:5031/60 30 Apr 2003 22:11:00 To : Dmitry Grusdev Subject : Кубик -------------------------------------------------------------------------------- 29 Apr 03 22:52, Dmitry Grusdev -> All: DG> Hаpод, есть вот условие лабы. DG> -------------------- DG> Hаписать пpогpамму, выводящую на экpан в гpафическом pежиме тpехмеpное DG> изобpажение куба в аксонометpической пpоекции и обеспечивающую его DG> вpащение вокpуг любой из осей, движение вдоль любой из осей и пульсацию DG> -------------------- DG> В пpинципе всё элементаpно, но хочется узнать, как лучше pасполагать оси DG> (изометpия или диметpия к-л или ...), какие линейные опеpатоpы или DG> фоpмулы лучше использовать итд... В общем интеpесует теоpия по этой DG> части, желательно пока очень сильно пpиближённая к конкpетной лабе. DG> Можно конкpетные пpимеpы и фоpмулы. Относительно диметрии и аксонометрии можно сказать следующее: была у меня похожая задача. Смысл в том, что необходимо задаться центром координат на экране и далее точку (x,y,z), заданную в локальной системе координат преобразовать в точку на экране (x,y). Для диметрии (если не ошибаюсь) все достаточно просто. Hадо учесть что по оси х растояние надо масштабировать с коэффициентом 1/2. Относительно афинных преобразований (поворот, масштабирование и перемещение ): обычно такие фишки реализуются с помощью матриц поворота, мастшабирования и перемещения соответственно. Каждая вершина объекта (x ,y ,z ,u) умножается на матрицу 4x4, в котрой в соответсвующих позициях заданы нужные значения. В результате получаем трансформированную вершину. (x` ,y`,z`,u). Компонента u в вершине - это лишь компонент нормализации ( u = 1 ) (просто чтобы совпадали размерности при умножении матриц). Матрицы выглядят так: перемещения; 1 0 0 0 0 1 0 0 0 0 1 0 dx dy dz 1 , где dx,dy,dz приращение по соотв-им осям. масштабирование sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 , где sx,sy,sz - коэф-ты масшт-ия по соотв-им осям. матриц поворота - 3 штуки (в общем случае) для вращения оъекта вокруг соотв-их осей. общий алгоритм такой: - задается массив вершин объекта в локальных координатах - объект стирается - координаты вершин трансформируются с пом. матриц - координаты локальные переводятся в экранные - объект рисуется, зыж есть сырки на delphi, если нужны - замылю. wbr Nick, 30-04-2003,21:57:59 ... They couldn't hit an elephant at this dist... --- * Origin: -=( Ice Station 490-493 00:00-07:00 )=- (2:5031/60) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/18012e9eb1c3.html, оценка из 5, голосов 10
|