Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Кубик   Dmitry Grusdev   29 Apr 2003 22:52:01 
 Кубик   Nikita Kiryanov   30 Apr 2003 22:11:00 
 Кубик   Dmitry Grusdev   01 May 2003 19:16:48 
Архивное /ru.algorithms/18012e9eb1c3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional