Вверх ↑
Этот топик читают: Гость
Ответов: 2060
Рейтинг: 28
#1: 2006-07-03 18:39:30 ЛС | профиль | цитата
Неделю пытаюсь вычислить формулу для расчёта куда попадёт точка после поворотов вокруг координатных осей с помощью компонента GL_Rotate. Относительные координаты не изменються, а вот абсолютные изменятся ( если я правильно выражаюсь ). Вот что я нашёл в интернете, но это по моему действительно для абсолютного поворота.



А какая формула должна быть для вычисления координат точки при учёте относительных поворотов? Может кто поможет?
карма: 1

0
Ответов: 8930
Рейтинг: 823
#2: 2006-07-03 19:20:48 ЛС | профиль | цитата
Эдик, в GL речь идёт о повороте координат, поэтому-то считать координаты новых точек не надо, а как они будут располагаться относительно координат до поворота считать просто:
Х=х*cos - y*sin
Y=x*sin + y*cos при повороте вокруг Z
карма: 19

0
Ответов: 2060
Рейтинг: 28
#3: 2006-07-03 19:53:37 ЛС | профиль | цитата
Леонид, Да я это понимаю. Это у тебя поворот для одной оси только, А мне надо сразу допустим для X,Y,Z одновременно. Используя твою формулу и другие для нахождения X,Y не получиться определить правельно новые координаты. Вот пример. code_9
Леонид, ты можешь в этой схеме в мультеэлименте "Расчёт второй точки." подставить свои формулы для расчётов так что бы чёрная линия на форме всегда совпадала с осью Z на экране?
карма: 1

0
файлы: 1code_9.txt [6.2KB] [637]
Ответов: 2060
Рейтинг: 28
#4: 2006-07-03 21:00:31 ЛС | профиль | цитата
Dilma может в Open GL есть такая команда которая определить координаты X,Y,Z после поворотов с помощью компонентов GL_Rotate? Или есть же компонент сохранение матрицы преобразования может оттуда можно как то выдернуть данные коэфецентов, углов или ещё чего ни будь?
карма: 1

0
Ответов: 8930
Рейтинг: 823
#5: 2006-07-03 23:50:48 ЛС | профиль | цитата
Эдик, любая фигура рисуется вдоль оси Z, поэтому считать ничего не надо: code_24

[size=-2]------ Добавлено в 23:50
Когда я рисовал в GL, всегда делал обратные преобразования, чтобы вернуться в исходную точку и с исходным направлением осей.
карма: 19

0
файлы: 1code_24.txt [4.2KB] [692]
Ответов: 2060
Рейтинг: 28
#6: 2006-07-04 00:14:28 ЛС | профиль | цитата
Леонид, ты меня немножечко не понял. Я тоже так могу нарисовать отрезок. Мне нужен вектор отрезка, в начеле когда запускаем программу у нас вектор равен (0,0,1) но после перемещения мышки по экрану этот вектор измениться. Мне вот это надо. В численном виде, мне не достаточно только нарисовать.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2006-07-04 01:54:14 ЛС | профиль | цитата
Эдик, а для чего это вообще понадобилось?
карма: 27
0
Ответов: 2060
Рейтинг: 28
#8: 2006-07-04 03:23:52 ЛС | профиль | цитата
Dilma, я пробую сделать на HiAsm космичискаю стрелялку в Open GL и там нужно знать вектор по которому будет передвигаться космический кораблик в трех мерном пространстве. В общем я нашёл формулы на этом сайте http://www.flashdocs.net/modules.php?name=News&file=article&sid=27, а вот какие основные формулы мне нужны были.
2.3 Поворот вокруг произвольной оси относительно центра координат.



Вращение вокруг произвольной оси немного сложнее. Его нужно непременно знать и понимать.

Формулы поворота на угол A вокруг произвольной оси (alpha, beta, gamma)

temp = 1.0-cos(A);

x' = x*(alpha*temp*alpha + cos(A)) + y*(beta*temp*alpha - sin(A)*gamma) + z*(gamma*temp*alpha + sin(A)*beta);

y' = x*(alpha*temp*beta + sin(A)*gamma) + y*(beta*temp*beta + cos(A)) + z*(gamma*temp*beta - sin(A)*alpha);

z' = x*(alpha*temp*gamma - sin(A)*beta) + y*(beta*temp*gamma + sin(A)*alpha) + z*(gamma*temp*gamma + cos(A));

Спасибо за попытку помочь. Сам нашёл формулы
карма: 1

0
Ответов: 8930
Рейтинг: 823
#9: 2006-07-04 11:23:32 ЛС | профиль | цитата
Эдик, по ночам спать надо, а не мучить Dilma-у своими проблемами!,
я нашёл формулы
тема закрыта?
карма: 19

0
Ответов: 2060
Рейтинг: 28
#10: 2006-07-04 16:06:44 ЛС | профиль | цитата
Леонид, просто очень интересно было как вычеслить этот вектор. Вроде в школе хорошо геометрию знал, а какую формулу применить понять не мог. Но потом нашёл формулы.
карма: 1

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)