2012-01-27 4 views
2

У меня проблема (и решение тоже). Я хочу знать, как прийти к «этому» решению. «Это» решение идеально подходит и отлично работает для всех возможных комбинаций.Поиск ориентации точки относительно другой точки в плоскости xy

Предположим, что у вас есть 3 точки в системе координат XY: P1(x1, y1), P2(x2, y2) и P3(x3, y3).

Теперь присоедините точку P2 к P3. Это приведет к появлению «луча», исходящего из точки P2 и проходящей через точку P3. Я использовал слово ray, потому что я хочу его только в одном направлении, то есть от P2 до P3.

Теперь, относительно точки P1, находится луч P2 --> P3 по часовой стрелке или против часовой стрелки?


Решение:

используют следующие формулы, чтобы найти значение z1:

z1 = (x3 - x1)(y2 - y1) - (y3 - y1)(x2 - x1)

Если z1 положительна, P2 --> P3 по часовой стрелке. Если z1 отрицательный, P2 --> P3 против часовой стрелки. И если это 0, то точки находятся на одной и той же воображаемой линии, простирающейся от P1.

Может кто-нибудь, пожалуйста, помогите мне, как прийти к этому решению?

ответ

3

Формула, которую вы написали, очень похожа на формулу перекрестный продукт двух векторов. Поскольку направление кросс-продукта зависит от конфигурации CW/CCW, вы можете легко использовать его для своей проблемы.

Вы можете построить два луча P1->P2 и P1->P3. Тогда вы можете взять свой крест продукта. Если компонент произведения вдоль оси Z положителен, то P2 и P3 находятся в порядке против часовой стрелки и наоборот.

Если вы попытаетесь это сделать, то результат, который будет коэффициентом k (единичный вектор вдоль оси Z) в поперечном продукте, будет точно таким же, как и упомянутый вами ответ.

-1

Я не уверен, что это работает. Я попробовал, но он продолжает давать мне тот же ответ для обоих. Попробуйте эти координаты:

Start point 0, 90, 0 
Center point 0, 0, 0 
End point 90, 0, 0 
..... 
directional vector 1, 0, 0 
inverse directional vector -1, 0, 0 
+1

Привет Benhur, я не знаю, как вы предоставили (0, 90, 0) в качестве начальной точки. Мой вопрос касается только системы координат 2D (X-Y). –

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