jpcad/shapes/Circle.py
2011-07-27 18:03:09 -04:00

56 lines
1.4 KiB
Python

import sys
from Shape import Shape
class Circle(Shape):
def __init__(self, x, y, r):
self.vars = [x, y, r]
def nVars(self):
return len(self.vars)
def nPts(self):
return 5
def toEqu(self, ptNum):
if ptNum == 0:
return ([1, 0, 0], [0, 1, 0])
elif ptNum == 1:
return ([1, 0, 1], [0, 1, 0])
elif ptNum == 2:
return ([1, 0, 0], [0, 1, 1])
elif ptNum == 3:
return ([1, 0, -1], [0, 1, 0])
elif ptNum == 4:
return ([1, 0, 0], [0, 1, -1])
def getCenter(self):
return (self.vars[0], self.vars[1])
def getRadius(self):
return self.vars[2]
def setRadius(self, r):
self.vars[2] = r
def getPt(self, ptNum):
if ptNum == 0:
return (self.vars[0], self.vars[1])
elif ptNum == 1:
return (self.vars[0] + self.vars[2], self.vars[1])
elif ptNum == 2:
return (self.vars[0], self.vars[1] + self.vars[2])
elif ptNum == 3:
return (self.vars[0] - self.vars[2], self.vars[1])
elif ptNum == 4:
return (self.vars[0], self.vars[1] - self.vars[2])
else:
sys.stderr.write('Circle.getPt(%d) called!' % ptNum)
def setPt(self, ptNum, pt):
if ptNum == 0:
self.vars[0:2] = pt
else:
raise IndexError('Can only set point 0')