![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение текущего положения... так сказать начала координат
AxxxE © (2004-03-11 14:38:00)Или как это называется в OpenGL? Вообщем то, что изменяется glTranslate'ом и glRotate'ом.
с (2004-03-26 16:14:00) [1]получаешь текущую матрицу, например так
var m:array[0..3, 0..3] of GLFloat;//матрица 4х4
..........
glGetFloatv(GL_MODELVIEW_MATRIX, @m);
//есть еще и GL_PROJECTION_MATRIX
и умножаешь вектор на эту матрицу, можно вручную
AxxxE (2004-03-20 12:57:00) [2]Именно! Мне надо получить эти координаты либо вычислениями, либо через саму ОпенГЛ.
марсианин (2004-03-19 23:54:00) [3]Шо как? формулу написать чтоль?..
AxxxE (2004-03-19 19:56:00) [4]Ты не совсем понял вопрос.
>ОГЛ сразу же перемножает эти координаты на текущую матрицу
А как он их, собсно, перемножает?
марсианин (2004-03-18 00:22:00) [5]изменяется текущая система координат
и только..
представ столб, преставь себя стоящего на некотором расстоянии. Столб будет стоять на своем месте какую бы ты систему не выбирал. у него есть неизменные глобальные координаты. Ты стоишь и у тебя тоже есть глобальные координаты. Вот ты стоишь и смотришь на него. ты видишь его в своей локальной системе координат. т.е. ты можешь придумать свою С.К. и поставить себя ее в центр. Сделал пару шагов - аналог glTranslatef. Столб приблизился. т.е. в твоей локальной С.К. его координаты изменились. угу?
с поворотами аналогично.
и вот ты решил поставить точку.. поставить ее, указывая для нее свои координаты, локальные.
ОГЛ сразу же перемножает эти координаты на текущую матрицу, получает ее координаты в глобальной с.к.; глобальные координаты умножаются на матрицу проекции и получаем экранные координаты, кидаем точку в буффер кадра, если не отсекается...
вот так на пальцах..
AxxxE (2004-03-13 12:42:00) [6]Ну должны же быть такие функции в OpenGL!?