我无法找到问题的解决方案: 我在python中通过3个列表X Y和Z定义了一条3D曲线。
我想知道这条曲线是否与某个矩形相交(例如它与y轴垂直),使用如下函数:
def curve_intersects(X,Y,Z,x,y,z,height, width):
return True # Or False
谢谢! :)
编辑:
def collision_filet(X,Y,Z):
for i in range(len(X)):
if (abs(X[i]) + radius <= WIDTH_TABLE/2.):
if Y[i]>=1.37 - 0.015 and Y[i]<= 1.37 + 0.015:
if Z[i]>=0 and Z[i]<= 0.1525:
return True
return False
我所拥有的曲线由列表X Y和Z 的连续点定义。 我现在这样做的方法是检查每个点是否在一个比我想检查曲线碰撞的矩形大一点的方框内。 这种技术的问题在于它需要有一个带有很多点的曲线,这需要花费大量的计算时间而且我不想要。
编辑 2:我可以向您提供有关我的问题的更多详细信息,以帮助您更好地了解它。因此,当乒乓球越过球时,我有一个乒乓球的曲线。问题是我需要创建一个函数来检查球轨迹是否与表格的网格相交(长度:1.83米,高度:0.15米,我们可以认为它的宽度为零和底线矩形在z = 0处接触表格。
因为我的曲线是由列表的连续点定义的,我想检查每个连续点是否分隔它们的线是否与网络的矩形相交这就是我&# 39;我坚持住了。
EDIT3 :我设法通过将其分成两个段交叉点问题来解决我的问题