如何检查一个点是否在另一个点的半径内

时间:2016-12-11 18:48:33

标签: vpython

所以我正在尝试为学校项目编程。当特定球体(A)到达另一个球体(B)时,它需要停止运行。但也允许在该球体(B)的半径范围内击中该球体(B)。

另一方面,它不允许在它的路上击中某些其他球体。

所有这些球体都有一个特定的半径。

1 个答案:

答案 0 :(得分:0)

我找到了答案,您可以从矢量(半径球体(B),半径球体(B))计算幅度,如果它大于或等于球体(A)和(B)之间距离的大小),这意味着球体(A)在球体半径(B)中。

sphereA = sphere()

sphereB = (sphere(), sphere()) 

,其中sphereB存在于多个球体B

之外
for i in range(len(spheres)):
    mag(distance(sphereA.pos,sphereB[i].pos)) <= mag(vector(sphere[i].radius,sphere[i].radius,sphere[i].radius)):
        exit()

你可以在此之前或之前保持一段时间,以便它继续检查你的第一个球体(A)是否不在你的另一个球体半径中(B)

distance(...)是计算向量的函数,向量是向量之间的距离*

*向量(X2-X1,Y2-Y1,Z2-Z1)