我创建了一个类“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
有人可以帮我编写一个单独的函数或方法来实现我想要的功能吗?我试了2小时还是没搞懂
你应该能够使用this直接从点公式。所以,你会得到类似的东西:
import math
class Point:
def distance_to_line(self, p1, p2):
x_diff = p2.x - p1.x
y_diff = p2.y - p1.y
num = abs(y_diff*self.x - x_diff*self.y + p2.x*p1.y - p2.y*p1.x)
den = math.sqrt(y_diff**2 + x_diff**2)
return num / den
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)