WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Поворот трехмерных фигур

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Поворот трехмерных фигур
MrSergei опубликован 03-02-2002 16:25 MSK   Click Here to See the Profile for MrSergei   Click Here to Email MrSergei  
С поворотом плоского прямоугольника теперь все понятно, фигура вращается
вокруг начальной точки по ниже приведенным формулам:

Xnew=x0+((x-x0)*cos(angle)-(y-y0)*sin(angle));
Ynew=y0+((x-x0)*sin(angle)+(y-y0)*cos(angle));

А для случая вращения вокруг остальных осей как быть? Матрицы поворотов
есть, но они написаны для трех-координатной системы (x,y,z), а как
быть с плоским представлением трехмерного вращения, ось Z вроде как есть,
но вроде как и нет, все надо представлять в координатах (x,y).

К примеру есть массив чисел, состоящий из наборов по три числа- x,y,z.
Соответственно пусть z будет высотой трехмерной фигуры. Так как все выразить
только через x и y?

wizzy опубликован 03-02-2002 16:29 MSK     Click Here to See the Profile for wizzy  Click Here to Email wizzy     
Считаешь через трехмерные матрицы все в трехмерном пространстве, а потом проецируешь на плоскость экрана хоть параллельным методом, хоть направленным. То есть суть в том, что ты вводишь в пространстве плоскость, соответствующую экрану монитора.
MrSergei опубликован 03-02-2002 20:40 MSK     Click Here to See the Profile for MrSergei  Click Here to Email MrSergei     
А как проецировать? всю аналитическую геометрию забыл напрочь. Объясни, если не трудно
MY опубликован 03-02-2002 21:31 MSK     Click Here to See the Profile for MY  Click Here to Email MY     
Проейировать можно например то таким формулам.
sx = xSize/2+x*dist/(z+dist),
sy = ySize/2-y*dist/(z+dist).
Где sx,sy - экранные координаты,
x,y,z - пространственные координаты.
xSize,ySize - размеры экрана(окна)
камера(точка из которой смотришь) находится в точке (0,0,-dist).
Вообщем все.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.