Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
МихаилЯров
1 / 1 / 1
Регистрация: 02.05.2017
Сообщений: 13
1

Поворот объекта. Поставить ось вращения на заданное значение

30.08.2017, 22:51. Просмотров 841. Ответов 5
Метки нет (Все метки)

Может, кто знает функцию для того, чтобы оси вращения(x, y, z) имели заданное мной значение.
А не glRotatef(1, 1, 1, 1), который просто поворачивает фигуру на определенное кол-во градусов.
А то придется высчитывать это и записывать в while True в новые координаты вершин объекта, очень будет долго.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2017, 22:51
Ответы с готовыми решениями:

Поворот объекта
Добрый день! Помогите пожалуйста разобраться, только начала изучать Open GL и...

Поворот объекта
Как задать угол наклона объекта, а не поворачивать на заданное количество...

Поворот объекта вокруг оси
Здравствуйте. Знаю что подобная тема уже поднималась на форуме, но интересующий...

Поворот объекта по нажатию клавиш
Попытался реализовать поворот по нажатию на стрелки, но эффекта нет, может кто...

Ось вращения шестеренок
Всем привет. Нужна помощь с задачкой. В конусной зубчатой передаче оси...

5
Antikl
с++
307 / 298 / 156
Регистрация: 15.07.2015
Сообщений: 1,578
Завершенные тесты: 6
31.08.2017, 09:52 2
можно так сделать
x, y, z - точка относительно которой нужно повернуть

a - угол поворота

C++
1
2
3
glTranslate(-x, -y, -z);
glRotate(a, 0, 0, 1);
glTranslate(x, y, z);
0
Excalibur921
763 / 435 / 71
Регистрация: 12.10.2013
Сообщений: 2,915
31.08.2017, 11:22 3
Неправильно используете glRotate.
https://www.khronos.org/registry/Ope...l/glRotate.xml
Нужно задать вектор вокруг которого поворот а не заполнить единицами отбалды не понимая что это и зачем...
“Specify the x, y, and z coordinates of a vector,”
0
МихаилЯров
1 / 1 / 1
Регистрация: 02.05.2017
Сообщений: 13
31.08.2017, 11:39  [ТС] 4
Я как раз это понимаю. Ввёл как пример написания. Я хочу сделать так, чтобы я записал в функции 15 градусов (может быть в радианах) и объект повернулся на 15 градусов относительно начального положения. Ввёл дальше 32, он бы повернулся на 32 относительно тоже НАЧАЛЬНОГО ПОЛОЖЕНИЯ, а НЕ повернулся бы дальше еще на 32 градуса, в итоге был бы 15 + 32 = 47 градусов. Вот такая функция мне нужна. Что-то вроде сеттинга поворота объекта относительно начального положения. А так приъодится напрямую с координатами связываться, что у меня кое-как получается, но довольно муторно и сложно.
0
snake32
1665 / 1117 / 197
Регистрация: 26.02.2009
Сообщений: 4,136
Записей в блоге: 5
31.08.2017, 12:09 5
Лучший ответ Сообщение было отмечено МихаилЯров как решение

Решение

МихаилЯров, так не нужно просто сохранять предыдущий поворот:
C++
1
2
3
4
glPushMatrix();// запоминаем матрицу в стеке
glRotate(a, 0, 0, 1);
// рисуем объект
glPopMatrix();// восстанавливаем матрицу из стека
1
Excalibur921
763 / 435 / 71
Регистрация: 12.10.2013
Сообщений: 2,915
31.08.2017, 12:18 6
Так не накапливайте поворот.
Можно сбрасывать трансформации вызывая перед поворотом glLoadIdentity();
http://www.firststeps.ru/mfc/opengl/r.php?11
Можно хранить в стеке glPushMatrix() повернули и снова glPopMatrix()
0
31.08.2017, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2017, 12:18

AutoLisp: Как программно задать выбрать ось вращения?
Здравствуйте! Хотелось бы узнать как программно можно выбрать ось вращения при...

Организация вращения объекта вокруг уже вращающегося объекта
Собственно необходимо организовать движение вокруг уже движущегося объекта. ...

Проекция с фигурой Тетраэдр - Ось вращения не должна совпадать с собственной вертикальной осью фигуры
Написать программу для изображения многогранника, вращающегося вокруг оси ОY....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru