SegmentoIperbolico Segmento iperbolico dati gli estremi (script) gear def calc( arg1, arg2 ): # Calculate whatever you want to show here, and return it. # For example, to implement a mid point, you would put this # code here: # return Point( ( arg1.coordinate() + arg2.coordinate() ) / 2 ) # Please refer to the manual for more information. a=arg1.coordinate(); b=arg2.coordinate(); ax=a.x ay=a.y if ay < 0: return InvalidObject() bx=b.x by=b.y if by < 0: return InvalidObject() asq=ax*ax + ay*ay bsq=bx*bx + by*by den = 2*(bx - ax) if den == 0: return Segment(a,b) x = (bsq - asq)/den c = Coordinate(x,0) rsq = asq + x*x - 2*x*ax r = sqrt (rsq) if rsq > 100*asq: return Segment(a,b) alfa = atan2(ay, ax-x) beta = atan2(by, bx-x) return Arc(c,r,alfa,beta-alfa) 3 4 2 1