2016-08-19 14 views
0

Если у меня есть 4 узлов на линии, например:Как знать 4 узлов (в одной строке) имеют одинаковые направления (или нет)

  • Основная линия образована узлами A(0,0) and B(5,0)
  • и там является линия на этой основной линии, которая образована C(2,0) and D(4,0)

очевидно, что vector AB имеет то же направление с vector CD, или, другими словами, vector BA имеет то же направление с vector DC.

Я знаю, что это просто, что в этом случае мы просто вычислим delta x and then divided by each length.

Есть ли общая техника и в "прямолинейная мода"?

Например, сравнивая градиенты (), которые в этом случае будут действительны, так как оба градиента равны нулю, но если координаты пройдены, вычисление будет ошибкой, так как градиенты не могут быть вычислены посредством деление на ноль).

Заранее спасибо.

+1

См. [Cross product of vectors] (http://mathworld.wolfram.com/CrossProduct.html). – Matsmath

+0

Или просто сделайте так, как вы делали, и сравните градиенты, только со специальным случаем, который вы отметили, обрабатывая деление на 0. (Но даже при том, что обе стороны будут делить на ноль, они имеют одно и то же направление.) –

+0

@ Matsmath: Спасибо. Но я думаю, что использование перекрестного продукта не является решением, так как это совпадающий случай с линией. Или я ошибаюсь? –

ответ

1

Если вы хотите знать, имеет ли AB ту же ориентацию, что и компакт-диск, вычислите произведение точек (B-A) * (D-C). Он будет положительным, если они указывают в одном направлении, отрицательные, если они указывают в противоположных направлениях, и ноль, если один из векторов равен нулю (или иначе перпендикулярно другому, но вы предполагали коллинеарные точки, чтобы этого не могло произойти).

+0

Спасибо. Значит, это точечный продукт нельзя использовать в моем случае, так как результат точечного произведения (_, который равен детерминанту для этого случая_) всегда равен нулю. –

+0

Я не следую за тобой, @bob. В вашем примере B-A = (5,0) и D-C = (2,0). Точечный продукт равен 5 * 2 + 0 * 0 = 10. Определитель равен 0. Почему точка-произведение будет равна определителю? – MvG

+0

Извините, моя ошибка, я прочитал ее неправильно. Я имею в виду _cross product_ NOT _dot product_. В этом случае вы правы. Благодарю. –

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

  • Нет связанных вопросов^_^