|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
OpenGL Кватернионы Поиск конечных углов поворота
Добрый день!
Рисую объекты по следующему коду: Код:
glPushMatrix; for I := 0 to 99 do begin glColor3f(1,i/255,i/255); glTranslatef(3,0,0); glRotatef(10,1,0,0); glRotatef(10,0,1,0); glRotatef(10,0,0,1); RenderBox;//Рисует кубик end; glPopMatrix; Мне необходимо вычислить конечные координаты каждого последующего кубика. Код:
Var u:TPoint3d; Pold:array [-1..99] of TPoint3d; Uold:array [-1..99] of TPoint3d; Код:
u.x:=10; u.y:=10; u.z:=10; Pold [-1].X:=0; Pold [-1].Y:=0; Pold [-1].Z:=0; Uold [-1].X:=0; Uold [-1].Y:=0; Uold [-1].Z:=0; for I := 0 to 99 do begin glPushMatrix; glLoadIdentity; glTranslatef(Pold [i-1].X, Pold [i-1].Y, Pold [i-1].Z); glRotatef(Uold.X,1,0,0); glRotatef(Uold.Y,0,1,0); glRotatef(Uold.Z,0,0,1); glTranslatef(3,0,0); glRotatef(u.x,1,0,0); glRotatef(u.y,0,1,0); glRotatef(u.z,0,0,1); Uold [i]:=Summ(Uold [i-1],u);// Функция Summ находет конечные углы поворота. glGetFloatv(GL_MODELVIEW_MATRIX,@M_M); Pold [i].X:=M_M[12]; Pold [i].Y:=M_M[13]; Pold[i].Z:=M_M[14]; glLoadIdentity; glPopMatrix; end; for I := 0 to 99 do begin glPushMatrix; glColor3f(i/255,1,i/255); glTranslatef(Pold [i-1].X, Pold [i-1].Y, Pold [i-1].Z); glRotatef(Uold[i].X,1,0,0); glRotatef(Uold[i].Y,0,1,0); glRotatef(Uold[i].Z,0,0,1); glTranslatef(3,0,0); glRotatef(u.x,1,0,0); glRotatef(u.y,0,1,0); glRotatef(u.z,0,0,1); RenderBox; glPopMatrix; end; Код:
glGetFloatv(GL_MODELVIEW_MATRIX,@M_M); Pold [i].X:=M_M[12]; Pold [i].Y:=M_M[13]; Pold[i].Z:=M_M[14]; https://drive.google.com/open?id=1Y4...eXc3JELRzVscFE |