Python中文
首页
教程
问答
标签
搜索
登录
注册
如何找到线段上距任意点最近的点?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>此函数应接受一个点参数,该参数将用于查找直线段对象上与其最近的点。在示例断言代码中,<code>getClosestPoint(Point())</code>将<code>Point(10, 0)</code>作为参数,并应返回<code>Point(5,5)</code>作为与<code>l1 = Line(Point(5,5), Point(20,35))</code>行上的最接近的点,端点是<code>A Point(5,5), B Point(20,35)</code>,我不知道该如何解决这个问题。我当前的解决方案将返回(4,3),它不在线段上,而是在直线上。在</p> <pre><code> 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 return Point(x, y) if __name__ == "__main__": p1 = Point(5,5) p2 = Point(20,35) l1 = Line(p1,p2) assert l1.getClosestPoint(Point(10,0)) == Point(5,5) assert l2.getClosestPoint(Point(25/2,25/2) class Point: def __init__(self,x=0,y=0): self.x = x self.y = y </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>见<a href="http://paulbourke.net/geometry/pointlineplane/" rel="nofollow noreferrer">this nice description by Paul Bourke</a>。 </p><hr/> <img src="https://i.stack.imgur.com/m7ezt.gif" alt="Bourke"/> <hr/>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
1 回答
无法使用Django\u mssql\u后端迁移到外部hos
1 回答
无法使用Django&Python3.4连接到MySql
4 回答
无法使用Django+nginx上载媒体文件
5 回答
无法使用Django1.6导入名称模式
5 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
2 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
5 回答
无法使用Djangocron进行函数调用
5 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
8 回答
无法使用Djangomssql provid
8 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
7 回答
无法使用Djangomssq迁移Django数据库
8 回答
无法使用Djangonox创建用户
7 回答
无法使用Djangopyodb从Django查询SQL Server
4 回答
无法使用Djangopython3ldap连接到ldap
8 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
1 回答