def __init__(self,coords): """Create a circular arc. The arc is specified by 3 non-colinear points. """ self.coords = Coords(coords) self.nparts = 1 self.closed = False if self.coords.shape != (3,3): raise ValueError,"Expected 3 points" r,C,n = triangleCircumCircle(self.coords.reshape(-1,3,3)) self.radius,self.center,self.normal = r[0],C[0],n[0] self.angles = vectorPairAngle(Coords([1.,0.,0.]),self.coords-self.center) print("Radius %s, Center %s, Normal %s" % (self.radius,self.center,self.normal)) print("ANGLES=%s" % (self.angles))
def drawCircles(F): for r,C,n in zip(*triangleCircumCircle(F.f)): c = simple.circle().swapAxes(0,2).scale(r).rotate(rotMatrix(n)).trl(C) draw(c) zoomAll()