Как я могу определить, является ли наименьший угол между двумя двумерными векторами положительным или отрицательным без тригонометрических функций? - PullRequest
0 голосов
/ 06 июня 2018

Если у вас есть векторы [x, y], как вы можете определить, что один поворачивается по часовой стрелке или против часовой стрелки от другого?Пример a = [1,0] и b = [0,1] от a до b против часовой стрелки, а от b до a по часовой стрелке.Могу ли я сделать это без cos, sin, загара и т. Д.

1 Ответ

0 голосов
/ 06 июня 2018

Рассчитать перекрестное произведение двух векторов.В этом случае, поскольку у вас есть двумерные векторы, все, что вам нужно, это коэффициент k (единичный вектор в направлении Z: перекрестное произведение двух векторов в плоскости XY всегда находится в Zнаправление), который является определителем коэффициентов двух векторов.Если это окажется положительным, то вы поворачиваете a против часовой стрелки, чтобы получить значение b .Если отрицательно, вы вращаетесь по часовой стрелке.Если ноль, они указывают либо в том же направлении, либо в противоположных направлениях, но вращение в любом направлении потребует одинакового угла (0 или \ pi), поэтому вы не можете определить меньший.

В приведенном выше случае,det ([1, 0], [0, 1]) = 1 и det ([0,1], [1, 0]) = -1.

...