Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

Как повернуть два кубика по отдельности?   Найти похожие ветки 

 
kins   (2006-07-01 12:03) [0]

Как повернуть два кубика по отдельности?

Внизу я привёл код. В результате получается что два кубика вращаются вметсе вокруг оси а не каждый фокруг своей.
Что в этом коде неправильно.

glpushmatrix();
glRotatef (45+x, 0.0, 0.0, 1.0);
glRotatef (45, 0.0+x, 0.0, 1.0);
glBegin (GL_POLYGON);
glVertex2f (-0.6, -0.1);
glVertex2f (-0.6, 0.4);
glVertex2f (-0.1, 0.4);
glVertex2f (-0.1, -0.1);
glEnd;

glTranslatef (0.4, 0.0, 0.0);
glRotatef (-45+x, 0.0, 0.0, 1.0);
glBegin (GL_POLYGON);
glVertex2f (0.1, -0.1);
glVertex2f (0.1, 0.4);
glVertex2f (0.6, 0.4);
glVertex2f (0.6, -0.1);
glEnd;

glpopmatrix();


 
RzCoDer ©   (2006-07-01 12:25) [1]

glpushmatrix();
glRotatef (45+x, 0.0, 0.0, 1.0);
glRotatef (45, 0.0+x, 0.0, 1.0);
glBegin (GL_POLYGON);
glVertex2f (-0.6, -0.1);
glVertex2f (-0.6, 0.4);
glVertex2f (-0.1, 0.4);
glVertex2f (-0.1, -0.1);
glEnd;
glpopmatrix();

glpushmatrix();
glTranslatef (0.4, 0.0, 0.0);
glRotatef (-45+x, 0.0, 0.0, 1.0);
glBegin (GL_POLYGON);
glVertex2f (0.1, -0.1);
glVertex2f (0.1, 0.4);
glVertex2f (0.6, 0.4);
glVertex2f (0.6, -0.1);
glEnd;
glpopmatrix();


 
OSokin ©   (2006-07-01 19:05) [2]

блин, мож проще LoadIdentity поставить? Все равно все так же, как и в [1]


 
RzCoDer ©   (2006-07-01 20:25) [3]


> OSokin,

LoadIdentity частенько бывает неудобно использовать из за полного сброса координат =(


 
RzCoDer ©   (2006-07-01 20:26) [4]

брр... точнее из за полного НЕ сброса координат ;)


 
grisme ©   (2006-07-01 22:07) [5]

RzCoDer ©   (01.07.06 20:25) [3]

Как раз таки стоит хранить координаты, углы поворота и прочие трансформации для каждого объекта отдельно..затем восстанавливая единичную матрицу, каверкать положение объекта не зависимо от остальных...


 
RzCoDer ©   (2006-07-01 22:45) [6]


> grisme ©   (01.07.06 22:07) [5]

В обще да, но говорю же что не всегда это бывает удобно


 
grisme ©   (2006-07-01 23:32) [7]

просто обычно всегда так делается..) если речь зашла лишь о "кубиках"(читай обучении автора ветки, т.к. его уровень чувствуется в вопросе), то вертеть их, помещая матрицы в стек, думаю, для него было бы самым оптимальным способом на данный момент..т.к. это поможет ему быстрее разобраться с "базой" OpenGL, а вот в серьезных проектах уже на стеке не уедешь(хотя если извращаться), да и не практично...

вывод: способ - по возможностям...:]


 
MeF Dei Corvi ©   (2006-07-02 00:48) [8]


> не всегда это бывает удобно

Ага :) Особенно, когда нужно сделать несколько связанных объектов... Например, то же самое вращение луны вокруг земли, вращающейся вокруг солнца.



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
3-1173768325
lightix
2007-03-13 09:45
2007.05.27
Изменить LANGDRIVER для DBase


3-1173777363
Bk
2007-03-13 12:16
2007.05.27
FIBPlus - выдать список таблиц из БД


8-1158148694
АМД134
2006-09-13 15:58
2007.05.27
Смена имен списка мр3


15-1176890619
Ломброзо
2007-04-18 14:03
2007.05.27
Ещё один гвоздик в гробик


1-1175261360
DelphiLexx
2007-03-30 17:29
2007.05.27
Как запретить эффект Drag&Drop