我有三个坐标位置A(x1,y1(、B(x2,y2(和C(x3,y3(。A是起始位置,B是结束位置,C是任意坐标位置。现在,我想计算与开始位置(A(相比,结束位置(B(是否离点位置(C(至少近25%。
有人能为这个问题编写伪代码吗?
假设您使用某种浮点数:
distance_to_a := dist(A, B)
distance_to_c := dist(C, B)
if distance_to_c <= 0.75 * distance_to_a:
output "C at least 25% closer"
else:
output "C not at least 25% closer"
现在假设您想要使用欧氏距离,定义以下内容:
def dist(A: Point, B: Point):
return sqrt((A.x-B.x)^2 + (A.y-B.y)^2)
这是一个简单的矢量几何:
从A到B的平方距离d2是(Ax-Bx(^2+(Ay-By(^2
因此,如果:,B对C比A对C少25%
sqrt(d2(A,C)) * 0.75 >= sqrt(d2(B,C))
并且简化了,所以你不需要处理根:
d2(A, C) * 0.75^2 >= d2(B, C)