interLineLine()

概要

それぞれのベクトルで定義される無限の線分間の交点を返します。線分どうしが平行な場合は、エラーを発行します。線分が同一平面上にない場合(斜めに位置する場合)は、仮想交点は見つかりません。1 番目と 2 番目の間のクロス積を求めて、交点に対する法線を決定します。次に、その法線を見下ろして、1 番目の線分との仮想交点を返します。

構文

interLineLine ( p1 As Point, _
                v1 As Vector, _
                p2 As Point, _
                v2 As Vector ) As Point 
引数 [タイプ] 説明
p1 交差する 1 番目の線分のです。
v1 ベクトル 1 番目の線分の方向です。
p2 交差する 2 番目の線分のです。
v2 ベクトル 2 番目の線分の方向です。

例 1

Intent >interLineLine(point(2,2,0), vector(1,3,0), point(0,0,0), vector(1,0,0)) 
--> Point_(1.333, 0.0, 0.0, WorldFrame()) 
1 番目の線分と X 軸が交差するです。

例 2

Intent >interLineLine(point(4,0,0), vector(0,1,0), point(0,0,0), vector(1,1,1)) 
--> Point_(4.0, 2.0, 0.0, WorldFrame()) 
この結果は、仮想交点です。2 本の線分は平行ではありませんが、同一平面上に配置することができないので、交差しません。これは、2 番目の線分に最も近い 1 番目の線分上のです。