Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
4-1087052115
juiceman
2004-06-12 18:55
2004.07.25
клавиатурный шпионаж


4-1087209443
stas
2004-06-14 14:37
2004.07.25
Распределение прав доступа в NT


8-1083785851
Mongoose
2004-05-05 23:37
2004.07.25
нужен совет по TTrackBar


14-1088712128
Юрий Федоров
2004-07-02 00:02
2004.07.25
Вакансия для СисАдмина в Москве


1-1089274655
aliced
2004-07-08 12:17
2004.07.25
Панель Delphi отсутствует при открытии проекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский