Рассчитать вращение вокруг точки - PullRequest
0 голосов
/ 03 ноября 2010

У меня есть две точки в 2D-пространстве с центром в начале координат (0,0). Первая точка представляет начальное местоположение, а вторая представляет конечное местоположение. Мне нужно вычислить угол поворота между двумя точками, моя проблема в том, что гипотенуза от каждой точки до (0,0) не равна.

Может кто-нибудь сказать мне, как определить угол между двумя точками, учитывая, что они могут быть где угодно относительно (0,0).

Большое спасибо,

Мт.

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

Это легко сделать, взяв арккозин нормализованного внутреннего продукта двух векторов. То есть, учитывая u = (u x , u y ) и v = (v x , v y ), угол между ними определяется как & theta; = acos ( u · v / | u || v |), где u · v = u x v x + u y v y является точечным произведением двух, и | | оператором является нормаль l 2 , заданная как | u | = sqrt (u x 2 + u y 2 ). Это приведет к наименьшему повороту, который может быть применен к одному из векторов, который сделает их линейными кратными друг другу. Поэтому вам может понадобиться возиться со знаком & theta; чтобы убедиться, что вы идете в правильном направлении, если у вас есть тот, с которого вы хотите начать.

1 голос
/ 03 ноября 2010

Скажем, точка 1 - это (x1, y1), а точка 2 - (x2, y2)

Тангенс угла от оси X к точке 1 относительно (0,0) равен y1 / x1

Тангенс угла от оси X к точке 2 относительно (0,0) равен y2 / x2

Возьмите арктангенс (это правильный термин? Tan-1 на калькуляторе), чтобы получить фактический угол для каждого, затем вычтите, чтобы получить искомый ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...