【发布时间】:2014-03-01 05:16:17
【问题描述】:
我有一个类Point,由一个带有x和y坐标的点组成,我必须编写一个方法来计算并返回连接Point对象和另一个Point对象的直线方程这是作为参数传递的(my_point.get_straight_line(my_point2)。我知道如何在纸上用 yy1 = m(xx1) 计算它,我已经有一个方法 @987654325 @ 计算 m,但我无法真正理解如何将方程转换为 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)
【问题讨论】:
-
你所拥有的看起来不错。你到底有什么问题?
-
我真的无法弄清楚
self.x、self.y、target.x和target.y中的哪些值将是等式中的每个值,以及如何制定它以便计算 c。 -
self.x是 x,target.x是 x1。或相反亦然。谁在乎!只要你以一种或另一种方式保持一致。
标签: python python-3.x