2016-11-27 7 views
0

ポイントとラインの間にポイントがあるが、2Dのポイントだけを特定する答えはたくさんあります。3Dのラインからポイントを取得する方法

ここで私が何をしたいの既存の問題だが、それは2D:私も考慮にZ軸を取るために、その下の式は、現在唯一のアカウントにX、Y位置を取っている適応させるにはどうすればよいHow to tell whether a point is to the right or left side of a line

?視点がトップダウンであると仮定します。 「側面」を選択するためには、まずあなたからそれを見るだろう軸を選択する必要がありますので

position = sign((Bx - Ax) * (Y - Ay) - (By - Ay) * (X - Ax)) 
+1

あなたは確かに3dで、あなたは飛行機のどちら側にいるのではないのですか? –

+0

どのような角度からでも線を見ることができるので、無限の解決策があります。あなたは少なくとも「側」(何の観点から)を意味するのかを定義する必要があります。 –

+0

それは私が作ったかなりの欠点です。私はそれについても考えなかったからです。ビューポイントはトップダウン、 – AquaGeneral

答えて

1

3Dのラインは、任意の角度から見ることができます。我々はまっすぐ見下ろしY軸上に表示しているとしましょう、と私たちの行は、これらの二つの点で構成されています:

(1,4,5) - >(5,2,6)

我々はそのY軸に沿って見ているように、我々はちょうど完全にY座標を無視することができ、それは単にこのだったかのようにラインを扱う:

(1,0,5) - >(5,0 、6)

x/zのみを使用して、他の方法と同様に2D記号テストを実行します。

あなたのビューアが軸合わせされていない場合は、ポイントをビューマトリックス(ユースケースによって実装が異なります)で掛けて、「スクリーンスペース」にラインを投影するだけです。通常、Z軸に沿って表示される線で終わるので、無視しても問題ありません。

関連する問題