#!/usr/bin/env python3 import math class Vertex(): post=None pre=None def __init__(self,_x,_y): self.x=_x self.y=_y def __sub__(self,r): return Vertex(self.x-r.x,self.y-r.y) def __str__(self): return "("+str(self.x)+","+str(self.y)+")" def __repr__(self): return "("+str(self.x)+","+str(self.y)+")" def __eq__(self,p): return (self.x==p.x) and (self.y==p.y) def __add__(self,p): return Vertex(self.x+p.x,self.y+p.y) #inner product def dot(self,p): return self.x*p.x+self.y*p.y def cross(self,p): return self.x*p.y-self.y*p.x def length(self): return math.hypot(self.x,self.y) def rotate(self,radian): originalX=self.x self.x=self.x*math.cos(radian)-self.y*math.sin(radian) self.y=originalX*math.sin(radian)+self.y*math.cos(radian) def set(self,_x,_y): self.x=_x self.y=_y def set(self,p): self.x=p.x self.y=p.y #SVG for output def toSVG(self): return str(self.x)+","+str(self.y)