2017-09-29 21 views
0

私は、既知の4つの座標と2つの既知の座標を持つ線を図に示すように持っています。 enter image description hereMATLABを使用して3D空間の平面上の線の交点を見つける方法

平面の4座標ラインの

A = (-5 -5 -8) 
B = (15 15 -8) 
C = (15 15 12) 
D = (-5 -5 12) 

座標は、この場合、線と普通交差において

M = (1.3978,40,6.1149) 
N = 4.3943, 4.8078,0.3551) 

されている場合、どのように点を見つけることができますMATLABを使用して3D空間内の線と平面の交差点? または両方が交差しているかどうかを確認するにはどうすればよいですか?

私はビデオtutorial to find equation of plane from three pointstutorial for finding point where line intersects a plain

に従うことによって、解決策を見つけることを試みた。しかし、私の場合には、平面の方程式はゼロです。だから私は混乱している。誰でも助けてくれますか?事前に

おかげで、 マヌー

答えて

1

私は交差点を見つけるために、簡単な線形代数を使用します。

はあなたがすべてカバーするmatlabcentralから次の関数を使用することができます|N| = sqrt(dot(N, N))はベクトルN.

の長さで、その後ユニットn = N/|N|、あなたがN = cross(AB, AD)言うのベクトル積として計算することができます(nはプレーンに垂直とします(そのような線は平面に平行である場合など)コーナーケースも、コメントでそれらを説明するコメントから

例:

A =[ -6.8756 39.9090 10.0000],B =[ -6.0096 40.4090 10.0000],C =[ -6.0096 40.4090 11.0000],D=[ -6.8756 39.9090 11.0000]; 
P0 =[ 1.3978 40.0000 6.1149],P1 =[ 4.3943 -4.8078 0.3551]; 

私はどこで間違いをしたのか分かりませんが、あなたのセグメントの外にある交点があると確信しています。だから、check=3があるはずです。ここで、ステップ動作によるステップの出力である:。

>> AB = B-A 
AB = 0.8660 0.5000   0 
>> AD = D-A 
AD = 0  0  1 
>> n = cross(AB,AD)/sqrt(dot(cross(AB,AD),cross(AB,AD))) 
n = 0.5000 -0.8660   0 
>> [I,check]=plane_line_intersect(n,A,P0,P1) 
I = 1.0961 44.5116 6.6948 
check = 3 

それが渡された他の任意の点(B、CまたはD)と同じ結果を生成check=3外にある交点Iは、ある意味P01セグメント。

検証ステップとして、法線nにはNz = 0があり、これはZ軸に垂直であることに注意してください。線がそれと交差しない唯一の方法は、Z軸と平行である(したがってベクトルP01はZに平行であり、Z成分がゼロである)場合である。

あなたのP01はZと整合していない:私は飛行機点A = [-6.8756 39.9090 10.0000]、B = [-6.0096 40.4090 10.0000]をチェックするとき

>> P01 = P1 - P0 
P01 = 2.9965 -44.8078 -5.7598 
+0

はお返事 – manoos

+0

いただき、誠にありがとうござい、 C = [-6.0096 40.4090 11.0000]、D = [-6.8756 39.9090 11.0000]、ラインポイントP0 = [1.3978 40.0000 6.1149]、P1 = [4.3943 -4.8078 0.3551]の場合、関数= check = 1、I = [-21.2205 31.6268 -6.3689]。実際には交差はありません。なぜこのような結果になったのか説明してください。 – manoos

+0

平面を定義するには3つの点しか必要ではなく、4つの点は同じ平面ではありません。あなたのものはそうですが、これは問題ではありません。しかし、私はあなたの出力と結果を再現するのに失敗しています。私があなたの入力を得ている出力を見てください。うまくいけば、あなたは間違いを見つけます。 –

関連する問題