小编Cru*_*nch的帖子

如何找到线段上到任意点最近的点?

该函数应该接受一个点参数,该参数将用于找到位于线段对象上的最近点。在这个例子中断言代码的功能getClosestPoint(Point())需要Point(10, 0)的参数,而应返回Point(5,5)的最近点Point(10, 0) 是上线l1 = Line(Point(5,5), Point(20,35))与端点是A Point(5,5), B Point(20,35)我不知道如何去解决这个问题。我当前的解决方案将返回 (4,3) 并且不在线段上,而是在线上。

 from point import Point
 import math
 class Line:
    def __init__(self,aPoint=Point(), bPoint=Point()):
        self.firstPoint = aPoint
        self.secondPoint = bPoint

    def getClosestPoint(self,point=Point()):

        m1 = self.getSlope()
        m2 = -1 / float(m1)
        b1 = self.p1.y - m1 * self.p1.x
        b2 = point.y - m2 * point.x
        x = float(b2 - b1) / float(m1 - m2)
        y = m1 * x + b1 …
Run Code Online (Sandbox Code Playgroud)

python geometry

2
推荐指数
1
解决办法
2575
查看次数

标签 统计

geometry ×1

python ×1