Euclidean 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) 0.811312 connect in the given order by hyperbolic segments 1 -0.000758328 -0.0872991 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) 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) 0.900981 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) 0.330512 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) 2 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) 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) 0 0 1.26708 2.70008 0.2529 0.171111 1.49455 2.871 0.175942 2.09262 2 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) 0.467627 0.632617 0.841198 1.49253 0 0.934191 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) 2.15154 5 0 0 7 0 0 6 4 0 0 2.12327 0 0.242 0.564893 0.341635 3 0.296018 1.03607 2.06078 1.39921 0.0406477 1.37143 1 1.08064 0.638 1.71058 2.11172 1.93972 1.20617 0.0479634 1.22712 1.75412 9 0 0 8 0.869132