Как можно реализовать фиксированную независимую точку в системе координат OpenGL? Вопрос такой у меня встал, когда начал делать анимацию. Вот например у меня задана хаотичная анимация и если я создаю новую точку то она создается относительно другой предыдущей точки. А если я создам такую точку вначале схемы, то поедят в сторону все объекты.
Этот топик читают: Гость
|
Ответов: 63
Рейтинг: 8
|
|||
| карма: 1 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
recoshet, это свойство GL - перемещается и поворачивается система координат и новый объект всегда рисуется от начала координат, поэтому надо или вычислять необходимое положение, или возвращать координаты в исходное положение путём зеркального повторения ранее выполненных перемещений (с знаком "-", естественно)
|
|||
| карма: 19 |
| ||
| Голосовали: | recoshet |
|
Ответов: 63
Рейтинг: 8
|
|||
|
Ну я такой путь решения обдумывал но это ещё плюс тонны компонентов
|
|||
| карма: 1 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
recoshet, "Без труда не вытащишь рыбку из пруда!" и ещё есть много народной мудрости на эту тему
|
|||
| карма: 19 |
|
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
|
Леонид писал(а): или возвращать координаты в исходное положение путём зеркального повторения ранее выполненных перемещений (с знаком "-", естественно)зачем так сложно? для этого есть методы pushmatrix и popmatrix сохраняющие и восстанавливающие матрицу пространственных преобразований. |
|||
| карма: 26 |
| ||
| Голосовали: | recoshet |
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Dilma, у меня был отрицательный опыт использования этих методов в очень длинной схеме (своей ошибки не исключаю
|
|||
| карма: 19 |
|
|
Ответов: 1304
Рейтинг: 405
|
|||
|
recoshet, пока делал пример были произнесены все за и против, но пример думаю не помешает.
|
|||
| карма: 3 |
| ||
| Голосовали: | recoshet |
|
Ответов: 2467
Рейтинг: 698
|
|||
|
recoshet, пользуйся pushmatrix и popmatrix елемент GL_GTool. Самое главное чтоб количество push было равно pop, то есть сколько раз сохранишь матрицу преобразования столько ее и восстанови (до отрисовки буфера накопления). Последовательность может быть различная лишь бы количество pop (восстановлений) не превышало push (сохранений). Работает как стек.
сохранил (1), передвинул повернул восстановил (1) сохранил(2) передвинул сохранил(3) передвинул сохранил(4) передвинул восстановить(4) восстановить (3) восстановить (2) передвинул. |
|||
| карма: 11 |
| ||
| файлы: 1 | code_18176.txt [6.7KB] [319] | ||
| Голосовали: | recoshet |
|
Ответов: 1304
Рейтинг: 405
|
|||
|
Вот эта схема может поможет:
|
|||
| карма: 3 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
sla8a, какой же Вы молодец, не глядя у меня ошибку нашли!
|
|||
| карма: 19 |
|
|
Ответов: 63
Рейтинг: 8
|
|||
|
[offtop]Во! Спасибо! Многое узнал сегодня
Еще маленькая поправочка елемент GL_GTool он в среде именуется GL_GTools |
|||
| карма: 1 |
|
11



Поиск
Друзья
Администрация