#------------------------------------------------------------------------------ # Point7.py #------------------------------------------------------------------------------ from math import sqrt from random import random class Point: """ Point class repesents a point (xcoord, ycoord) in the Euclidean plane. """ def __init__(self, x=0, y=0): """ Create a new point at (x, y) with x=0 and y=0 as default values. """ self.xcoord = x self.ycoord = y # end __init__() def __str__(self): """ Return a string representation of self. """ return 'Point({0:.3f}, {1:.3f})'.format(self.xcoord,self.ycoord) # end __str__() def __eq__(self, other): """ Return True if self == other, false otherwise. """ if type(self) is type(other): return self.__dict__ == other.__dict__ else: return False # end __eq__() def sqNorm(self): """ Return the square of the distance from the origin to (xcoord, ycoord) """ return self.xcoord**2 + self.ycoord**2 # end sqNorm() def norm(self): """ Return the distance from self to origin. """ return sqrt(self.sqNorm()) # end norm() def dist(self, other): """ Return the distance from self to other. """ return sqrt( (self.xcoord-other.xcoord)**2 + (self.ycoord-other.ycoord)**2 ) # end dist() def midpoint(self, other): """ Return a new Point object that is halfway between self and other. """ x = (self.xcoord+other.xcoord)/2 y = (self.ycoord+other.ycoord)/2 return Point(x, y) # end midpoint() def randPoint(a, b, c, d): """ Return a new random Point satisfying a<=xcoord