0

与えられた2つの長方形の線分を3Dで計算する高速な方法を探しています。たとえば、各3D長方形は、その4つの頂点によって定義されます。

妥当なプログラミング言語での解決策で十分です。

4

2 に答える 2

2

エラーが含まれていると思われるアーロンの回答に基づいています。

  1. 2 つの長方形を 2 つの平面に変換します (4 つの頂点のうち 3 つを取り、そこから平面を作成します)。
  2. 2 つの平面を交差させて、無限の線 (*) を取得します。
  3. この線を最初の長方形の境界線と交差させます。
  4. 3 の結果を 2 番目の四角形の境界線と交差させます。

手順 4 を省略すると、最初の四角形が 2 番目の四角形の平面と交差するが、四角形自体とは交差しない場合に、誤った交差が発生します。例:

rectangle1=[(-1,-1,0),(-1,1,0),(1,1,0),(1,-1,0)]  
rectangle2=[(0,50,50),(0,50,40),(0,40,40),(0,40,50)]

Plane1 は z=0、plane2 は x=0、それらの交点は y 軸であり、1 と -1 でrectangle1 と交差します。ただし、長方形は交差しません。

(*) 平面が重なっている場合、長方形の交点は依然として線になる可能性がありますが、これはかなり厄介なケースです。

于 2009-11-10T08:43:36.167 に答える
1

3 つの一般的な 3D 操作を組み合わせる必要があります。

  1. 2 つの長方形を 2 つの平面に変換します (4 つの頂点のうち 3 つを取り、そこから平面を作成します)。

  2. 2 つの平面を交差させて、無限の線を取得します (ここを参照)。

  3. この線を最初の長方形の境界線と交差させます。求める線分の終点である 2 つの交点を取得する必要があります。

于 2009-11-09T10:34:08.237 に答える