Поворотная точка на плоскости - PullRequest
1 голос
/ 18 февраля 2012

Дана плоскость (ее нормаль) и заданы 2 точки K1, K2, которые лежат на этой плоскости.Мне нужно повернуть точку К2 вокруг К1 на заданный угол альфа на этой плоскости.Как рассчитать новые координаты К2?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Ну, не зная, на каком языке вы кодируете, общий ответ выглядит примерно так:

//get some distances
distx = K2.x - K1.x
disty = K2.y - K1.y

//use Pythagorean theorem to find radius
radius = Math.sqrt(distx*distx + disty*disty)

//set new location using your angle, alpha
K2.x = K1.x + radius*cos(alpha)
K2.y = K1.y + radius*sin(alpha)
0 голосов
/ 24 августа 2013

Вращение по определению происходит на оси с фиксированной точкой поворота. Думайте об этом, как вращение листа бумаги под ручкой меняет расположение бумаги и ручки только тогда, когда она вам подходит.

Поверните отдельную ось, чтобы создать ту, на которую вы хотите повернуть. Вам понадобится расстояние от точки до начала координат, чтобы сохранить ее местоположение посредством смещения оси. Вам также понадобятся необходимые углы для достижения вашей новой оси. Сохраняйте последовательность при измерении стороны терминала.

Далее вам понадобится точка разворота на этой оси. Это начало вашего происхождения. Поскольку он вращается вокруг фиксированной оси, вам больше не нужно беспокоиться о оси Z, поскольку она не может скользить вперед и назад. Используйте синус и косинус, расстояние и угол поворота, чтобы найти новые координаты.

Наконец, поверните ось обратно в исходное положение, чтобы вы получили (x ', y', z ')

Угол оси, формула вращения и углы Эйлера. Рекомендую последний для начинающих.

...