2016-08-19 5 views
0

私はライン上の4つのノードを持っている場合は、例えば:同じ方向(またはしない)を持っている

  • メインラインは、ノードA(0,0) and B(5,0)
  • とそこで形成されています。 vector ABvector CDと同じ方向を有する、即ち、vector BAvector DCと同じ方向を有することが明らかであるC(2,0) and D(4,0)

によって形成されるこのメインライン上の線です。

私はそれが単純であることを知っています、この場合、我々はちょうどdelta x and then divided by each lengthを計算します。

一般的な技術はありますか?ストレートファッション "にありますか?

例えば、両方の勾配がゼロであるので、この場合の勾配()を比較することによって、しかし、座標が変換されると、勾配は0で割る)。

ありがとうございます。

+1

[ベクトルのクロス積](http://mathworld.wolfram.com/CrossProduct.html)を参照してください。 – Matsmath

+0

あなたが行っていたように、グラデーションを比較します。注目した特殊なケースだけで、0で除算を処理します(ただし、両側が0で除算される場合でも、同じ方向になります)。 –

+0

@Matsmath:ありがとう。しかし、クロスプロダクトを実行することは解決策ではないと思います。これは、一致するラインケースであるためです。または私は間違っていますか? –

答えて

1

ABとCDの向きが同じかどうかを知りたい場合は、内積(B-A)*(D-C)を計算します。反対方向を指している場合は負であり、ベクトルの1つがゼロ(または他の方向に垂直である場合は0)であれば0になりますが、それは起こり得ないように同一線上の点を仮定します。

+0

つまり、ドットプロダクトの結果(このケースの行列式に等しい_)は常にゼロであるため、私の場合はドットプロダクトを使用できません。 –

+0

私はあなたに従わない、@ボブ。あなたの例では、B-A =(5,0)とD-C =(2,0)です。内積は5 * 2 + 0 * 0 = 10です。決定子は0です。なぜドットプロダクトは行列式に等しいでしょうか? – MvG

+0

私の間違い申し訳ありませんが、私はそれを間違って読んでいます。私は_cross product_ NOT _dot product_を意味します。この場合、あなたは正しいです。ありがとう。 –

関連する問題