Вращающаяся точка на плоскости

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


person Lacoste    schedule 17.02.2012    source источник


Ответы (2)


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

//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)
person n_i_c_k    schedule 17.02.2012
comment
ха-ха, ты ответил на мой вопрос в системе 2d {x,y}, но я спросил в системе 3d {x,y,z} - person Lacoste; 18.02.2012

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

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

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

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

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

person David Fisher    schedule 24.08.2013