I cleaned it a bit; look what you think.
def slope(dx, dy): return (dy / dx) if dx else None class Point: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return '({}, {})'.format(self.x, self.y) def __repr__(self): return 'Point({}, {})'.format(self.x, 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): dx = target.x - self.x dy = target.y - self.y return (dx*dx + dy*dy) ** 0.5 def reflect_x(self): return Point(-self.x,self.y) def reflect_y(self): return Point(self.x,-self.y) def reflect_x_y(self): return Point(-self.x, -self.y) def slope_from_origin(self): return slope(self.x, self.y) def slope(self, target): return slope(target.x - self.x, target.y - self.y) def y_int(self, target):
and here are some usage examples:
a = Point(2., 2.) b = Point(4., 3.) print(a)
Hugh bothwell
source share