-1

我正在尝试这样做但是在 3d 中并使用 2d 圆圈而不是框。

我在两点之间有一条线[ (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-plane 和 at的平面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 回答