This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/fablabchemnitz/geometry/Vertex.py

53 lines
1.0 KiB
Python

#!/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)