2012-02-17 2 views
1

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

ответ

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) 
+0

haha ​​вы ответили на мой вопрос в системе 2d {x, y}, но я спросил в 3d {x, y, z} – Lacoste

0

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

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

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

Наконец поверните ось обратно в исходное положение, так что у вас есть (х «у», г ')

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

Смежные вопросы