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

Вниз

glRotate и glTranslate   Найти похожие ветки 

 
AxxxE   (2004-03-15 19:07) [0]

Что-то до меня не допрёт, как они работают. Ну, предположим я сделал

glRotetef(rX, rY, rZ);
glTranslatef(X, Y, Z);

и нарисовал точку. Как мне определить, где находится эта точка? По каким формулам вычислить её координаты? Перепробовал всё, так и не получил правильного результата.


 
марсианин ©   (2004-03-18 00:03) [1]

Как мне определить, где находится эта точка?
смотря в какой системе координат..))


 
AxxxE   (2004-03-28 21:58) [2]

>смотря в какой системе координат

В той, ессно, в которой оперирует Опенгл. А он оперирует в своей, неизвестной науке системе, иначе бы я не задавал этот вопрос.


 
Leon ©   (2004-03-30 17:09) [3]

OpenGL оперирует декартовой системой координат.
glRotate(....) -- поворот этой системы
glTranslate - перенос
А дальше рабоитаеш в том что получилось!
И эти операции не коммутируют :)


 
AxxxE ©   (2004-03-30 20:04) [4]

Меня больше волнует поворот - как бы я ни поворачивал систему координат, так у меня результат и несходится с опенгловскими. Или я не так поворачиваю? Может дашь формулы?


 
Leon ©   (2004-03-31 17:13) [5]

Универсальныю формулы для 3D поворота к сожалению дать не могу.
(Нужно копать куда-то в сторону углов Эйлера)
Протестируй для начала на 2D углах - там формулы проще:
/ cos(A) sin(A) 0 \
| sin(A) -cos(A)0 |  или
\ 0       0     1 /
/ sin(A) cos(A) 0 \
| -cos(A)sin(A) 0 |  ( точно не помню )
\ 0       0     1 /
Н-р:
X" = X*cos(alfa) + Y*sin(alfa) // умножение мат. на век.


 
Leon ©   (2004-03-31 17:14) [6]

как то кривовато получилось... :)


 
Leon ©   (2004-03-31 17:16) [7]

Да, чуть не забыл:
glRotatef(угол_поворота, ПроекцияОсиПоворотаНаX, ...Y, ...Z);
Может сдесь ошибка?


 
Leon ©   (2004-03-31 17:32) [8]

Прошу прощения - ни то ни доугое:
cos(A)  -sin(A) 0
sin(A)   cos(A) 0
  0       0     1
Матрица преобразования поврота на угол A вокруг оси OZ

P.S. сдесь -> здесь )


 
марсианин ©   (2004-04-03 02:08) [9]

В той, ессно, в которой оперирует Опенгл. А он оперирует в своей, неизвестной науке системе, иначе бы я не задавал этот вопрос.

см. glGetFloatv с флагами MODELVIEW_MATRIX и PROJECTION_MATRIX

а еще лучше найди прочитай где-нибудь что-нибудь о матрицах в ОпенГЛ..


 
Darthman ©   (2004-04-05 18:58) [10]

В любой Книге по ОпенГЛ написано так, что непонять невозможно, как пользоваться транслейтом, ротейтом и скейлингом. Это основы ОпенГЛ, если вы их незнаете или непонимаете, в первую очередь стоит почитать литературу на эту тему, а потом задавать вопросы уже. Хотя, после прочтения соотвествующего материала вопросы сами отпадут.


 
AxxxE ©   (2004-04-05 21:07) [11]

Это ты "нас" не понимаешь. Пользоваться много ума не надо :).



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
3-1088335340
Vemer
2004-06-27 15:22
2004.07.25
Подгонка высоты ячеек в QReport...


8-1084255400
Akron
2004-05-11 10:03
2004.07.25
Добавление ani курсора в RC и использование его в EXE


4-1086796374
DelphiN!
2004-06-09 19:52
2004.07.25
Как поменять запятую(разделитель) на точку в "Языках и стандартах


11-1076449964
DDA
2004-02-11 00:52
2004.07.25
Тормаза


3-1088411549
MORA
2004-06-28 12:32
2004.07.25
InterBase SERVER