-1

私はこれをやろうとしていますが、3D で、ボックスの代わりに 2D 円を使用しています。

2 点間から始まる線があり、[ (0,0,0), (3,4,5) ]それが交差するかどうかを確認したい

circle = Circle((2, 1), 0.5)

ax.add_patch(circle)

art3d.pathpatch_2d_to_3d(circle, z=1, zdir="x")

3D 軸上にプロットされた 2D オブジェクト上で交差するパスをテストすることは可能ですか? path.intersects_circle上記のリンクされた例から、円を次のように定義する場所を実行したいと思います。

ドキュメントを確認しましたが、Bboxこの方法は円には使用できないようです。

4

1 に答える 1

1

これは に関連するというよりも、代数の問題のように聞こえますmatplotlib
これが私があなたの質問を理解する方法です:

  • ( x=2, y=1) に半径 の円があります。r=0.5
  • この円は一定の平面に位置していますz=1

1.) あなたのベクトルが平面に平行な平面を貫通する場所を決定する必要がありx,yますz=1。質問で指定したベクトルの場合、この交点は次のとおりです。

x = 3./(2.**0.5)
y = 4./(2.**0.5)
z = 1.

2.) この交点が、円で覆われた平面の一部に含まれるかどうかを判断する必要があります。y-coordinateあなたのサークルが到達する最大値は1.5-y-coordinate交差点の はすでに大きくなっています。したがって、直線は円を貫通しません。

以上のことから、平面との交点に基づいて代数チェックを実装し、この交点が円の一部であるかどうかを判断することをお勧めします。そして、それからのみ使用しmatplotlibます。

于 2013-05-26T16:37:43.987 に答える