我正在尝试this,但在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
文档,似乎我不能将此方法用于圆圈?
答案 0 :(得分: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
。