我有一个类Point,由一个x和y坐标点组成,我必须编写一个方法来计算并返回一条直线的方程,该直线连接一个Point对象和另一个Point对象,该对象作为参数(my_point.get_straight_line(my_point2))传递。我知道如何在纸上用y-y1=m(x-x1)来计算,而且我已经有了一个方法来计算my_point.slope(my_point2),但是我无法真正理解如何将方程转换成Python。全班同学: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 negx(self):
return -(self.x)
def negy(self):
return -(self.y)
def __str__(self):
return 'x=' + str(self.x) + ', y=' + str(self.y)
def halfway(self,target):
midx = (self.x + target.x) / 2
midy = (self.y + target.y) / 2
return Point(midx, midy)
def distance(self,target):
xdiff = target.x - self.x
ydiff = target.y - self.y
dist = math.sqrt(xdiff**2 + ydiff**2)
return dist
def reflect_x(self):
return Point(self.negx(),self.y)
def reflect_y(self):
return Point(self.x,self.negy())
def reflect_x_y(self):
return Point(self.negx(),self.negy())
def slope_from_origin(self):
if self.x == 0:
return None
else:
return self.y / self.x
def slope(self,target):
if target.x == self.x:
return None
else:
m = (target.y - self.y) / (target.x - self.x)
return m
如有任何帮助,我们将不胜感激。
编辑:我用一个计算c的公式计算出来,然后用字符串和self.slope(target)一起返回!结果比我想象的要简单得多。def get_line_to(self,target):
c = -(self.slope(target)*self.x - self.y)
return 'y = ' + str(self.slope(target)) + 'x + ' + str(c)