我创建了一个“Point”类,我想计算一个给定点和一条线之间的最短距离(以2个其他点为特征),所有点都是已知的。 我尝试使用这个公式:| Ax + By + C | / sqrt(A ^ 2 + B ^ 2),但是我搞砸了并且在分钟时更加困惑(主要是因为数学公式:()......
我确实找到了一些人们也会问这个问题的网站,但它不是用于Python,也不是3D系统而不是2D ......
以下是我的课程:
class Point:
def __init__(self,initx,inity):
self.x = initx
self.y = inity
def getX(self):
return self.x
def getY(self):
return self.y
def __str__(self):
return "x=" + str(self.x) + ", y=" + str(self.y)
def distance_from_point(self,the_other_point):
dx = the_other_point.getX() - self.x
dy = the_other_point.getY() - self.y
def slope(self,other_point):
if self.x - other_point.getX() == 0 :
return 0
else:
panta = (self.y - other_point.getY())/ (self.x - other_point.getX())
return panta
有人可以帮我写一个单独的功能或方法来做我想要的吗?我试了两个小时,我想不出来......
答案 0 :(得分:0)
两点之间的距离公式为Distance =sqrt((x2−x1)^2+(y2−y1)^2)
。
计算斜率的公式为slope = (y2 - y1) / (x2 - x1)
。
以下是计算距离的简单方法
def distance_from_other_point(self, other_point):
return math.sqrt( ( other_point.getX() - self.getX() )**2 + ( other_point.getY() - self.getY() )**2 )
def slope(self, otehr_point):
return ( other_point.getY() - self.getY() )*1.0 / ( other_point.getX() - self.getX() )
在第二种方法中,斜率,我乘以1.0,结果将是浮点数。 注意 - 我使用了python 2.7.6的语法,但希望它也可以在python 3.x中使用。