我需要一个基本函数来找到点和线段之间的最短距离.随意用您想要的任何语言编写解决方案; 我可以把它翻译成我正在使用的(Javascript).
编辑:我的线段由两个端点定义.所以我的线段AB由两点A (x1,y1)和B (x2,y2).我试图找到这个线段和一个点之间的距离C (x3,y3).我的几何技能很生疏,所以我看到的例子令人困惑,我很遗憾地承认.
说我有以下多边形和点:
>>> poly = Polygon([(0, 0), (2, 8), (14, 10), (6, 1)])
>>> point = Point(12, 4)
Run Code Online (Sandbox Code Playgroud)
我可以计算点到多边形的距离......
>>> dist = point.distance(poly)
>>> print(dist)
2.49136439561
Run Code Online (Sandbox Code Playgroud)
...但我想知道最短距离所测量的多边形边界上的点的坐标.
我最初的方法是通过它与多边形的距离缓冲点,并找到该圆与多边形相切的点:
>>> buff = point.buffer(dist)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何计算这一点.两个多边形不相交,所以list(poly.intersection(buff))不会给我这一点.
我是否在正确的轨道上?有更简单的方法吗?
我有一个多面体的表面,我想找到它与给定点P之间的最小距离.由于多面体是由3d空间中的许多多边形定义的,因此我发现的一种方法是比较每个多边形的距离并选择最短距离.我仍然不确定.