Неделю пытаюсь вычислить формулу для расчёта куда попадёт точка после поворотов вокруг координатных осей с помощью компонента GL_Rotate. Относительные координаты не изменються, а вот абсолютные изменятся ( если я правильно выражаюсь ). Вот что я нашёл в интернете, но это по моему действительно для абсолютного поворота.
А какая формула должна быть для вычисления координат точки при учёте относительных поворотов? Может кто поможет?
Этот топик читают: Гость
Ответов: 2060
Рейтинг: 28
|
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Эдик, в GL речь идёт о повороте координат, поэтому-то считать координаты новых точек не надо, а как они будут располагаться относительно координат до поворота считать просто:
Х=х*cos - y*sin Y=x*sin + y*cos при повороте вокруг Z |
|||
карма: 19 |
|
Ответов: 2060
Рейтинг: 28
|
|||
Леонид, Да я это понимаю. Это у тебя поворот для одной оси только, А мне надо сразу допустим для X,Y,Z одновременно. Используя твою формулу и другие для нахождения X,Y не получиться определить правельно новые координаты. Вот пример. code_9
Леонид, ты можешь в этой схеме в мультеэлименте "Расчёт второй точки." подставить свои формулы для расчётов так что бы чёрная линия на форме всегда совпадала с осью Z на экране? |
|||
карма: 1 |
| ||
файлы: 1 | code_9.txt [6.2KB] [637] |
Ответов: 2060
Рейтинг: 28
|
|||
Dilma может в Open GL есть такая команда которая определить координаты X,Y,Z после поворотов с помощью компонентов GL_Rotate? Или есть же компонент сохранение матрицы преобразования может оттуда можно как то выдернуть данные коэфецентов, углов или ещё чего ни будь?
|
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Эдик, любая фигура рисуется вдоль оси Z, поэтому считать ничего не надо: code_24
[size=-2]------ Добавлено в 23:50 Когда я рисовал в GL, всегда делал обратные преобразования, чтобы вернуться в исходную точку и с исходным направлением осей. |
|||
карма: 19 |
| ||
файлы: 1 | code_24.txt [4.2KB] [692] |
Ответов: 2060
Рейтинг: 28
|
|||
Леонид, ты меня немножечко не понял. Я тоже так могу нарисовать отрезок. Мне нужен вектор отрезка, в начеле когда запускаем программу у нас вектор равен (0,0,1) но после перемещения мышки по экрану этот вектор измениться. Мне вот это надо. В численном виде, мне не достаточно только нарисовать.
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Эдик, а для чего это вообще понадобилось?
|
|||
карма: 27 |
|
Ответов: 2060
Рейтинг: 28
|
|||
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 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Эдик, по ночам спать надо, а не мучить Dilma-у своими проблемами!,
я нашёл формулы тема закрыта? |
|||
карма: 19 |
|
Ответов: 2060
Рейтинг: 28
|
|||
Леонид, просто очень интересно было как вычеслить этот вектор. Вроде в школе хорошо геометрию знал, а какую формулу применить понять не мог. Но потом нашёл формулы.
|
|||
карма: 1 |
|
10