Вращение вокруг оси Z 45 градусов: glRotatef(45.0,0.0,0.0,1.0);
Для вращения вокруг оси Z 45 градусов относительно точки (10,0, -5,0,0,0), мне нужно перевести?Вращение по OpenGL относительно оси z
0
A
ответ
1
Дело в том, что функция glRotatef() состоит в том, что она может вращаться вокруг источника. Поэтому для поворота вокруг определенной точки нужно перевести эту точку в начало координат, выполнить поворот и перевести назад. Таким образом, для точки (10, -5, 0) вы могли бы сделать:
glPushMatrix(); // you do this to avoid disturbing the transformation matrices for any code following the below lines
glTranslatef(-10, +5, 0); // translate so that (10, -5, 0) lies at the origin
glRotatef(45, 0, 0, 1); // now rotate
glTranslatef(10, -5, 0); // translate back
// now you have rotated the scene by 45 degrees arround z-axis, at point (10, -5, 0)
// (draw your object *here*)
glPopMatrix(); // the old matrix is back
// now it is as if nothing happened
Толчок/поп-матрица часто неправильно, поэтому я на примере. В новом OpenGL нет неявного стека матриц, поэтому нужно вручную управлять его матрицами. Это немного сложнее, но взамен нет путаницы.
Смежные вопросы
- 1. Вращение мыши по оси Z в javafx
- 2. Вращение в OpenGL относительно окна просмотра
- 3. Вращение точки вокруг оси z
- 4. Вращение OpenGL - Локальные и глобальные оси
- 5. Вращение камеры XNA вокруг оси Z
- 6. Вращение оси объекта в OpenGL
- 7. Матричная проблема трансформации - вращение оси Z наклонно
- 8. Единство2d вращение игрового объекта вдоль оси z
- 9. Вращение OpenGL
- 10. OpenGL - Вращение плоскости вокруг определенной оси?
- 11. Вращение оси z в matplotlib 3d figure
- 12. Вращение OpenGL + SDL вокруг локальной оси
- 13. Вращение по пути в OpenGL
- 14. Вращение объекта по собственной оси?
- 15. вращающийся набор сфер относительно оси z
- 16. Android opengl: произвольное вращение оси не применимо.
- 17. Вращение по оси объекта оси Y [UNITY]
- 18. Неподвижное поведение по оси Z при OpenGL при рисовании квадрата
- 19. Перемещение некоторых точек по оси z в OpenGL не работает
- 20. OpenGL: Зачем смотреть вниз по оси z в пространстве глаза?
- 21. Opengl ES - Неправильная визуализация на оси z?
- 22. Как переместить Android ImageView по оси Z?
- 23. Вращение куба по его оси
- 24. Вращение кватерниона по оси 1?
- 25. Вращение вокруг оси камеры
- 26. matplotlib получить положение относительно оси по оси
- 27. Вращение многоугольника OpenGl
- 28. Вращение в opengl
- 29. Переопределяющая карта по оси Z
- 30. Вращение трекбола в OpenGL
для вращения вокруг точки, да, вам также нужно будет перевести. Это зависит от вас, если вы хотите перевести, повернуть свой объект, а затем перевести на то, что не каскадируется через следующее преобразование, или поместить эти два между вызовами glPushMatrix() и glPopMatrix() – 2010-12-05 10:32:22