On 11/12/05, Robert Kern <[EMAIL PROTECTED]> wrote:
Ben Bush wrote:
> is there any code to decide whether a point is located within the circle
> by three other points?

# Converted from my C++ code.
# C.f. http://www.ics.uci.edu/~eppstein/junkyard/circumcenter.html
def circumcenter(x0, y0,
                x1, y1,
                x2, y2):
   x0m2 = x0 - x2
   y1m2 = y1 - y2
   x1m2 = x1 - x2
   y0m2 = y0 - y2
   x0p2 = x0 + x2
   y1p2 = y1 + y2
   x1p2 = x1 + x2
   y0p2 = y0 + y2

   D = x0m2*y1m2 - x1m2*y0m2
   # You probably want to test for D being close to 0 here

   centerx = (((x0m2*x0p2 + y0m2*y0p2)/2*y1m2)
             - (x1m2*x1p2 + y1m2*y1p2)/2*y0m2) / D
   centery = (((x1m2*x1p2 + y1m2*y1p2)/2*x0m2)
             - (x0m2*x0p2 + y0m2*y0p2)/2*x1m2) / D

   return centerx, centery

def incircle(x0, y0,
            x1, y1,
            x2, y2,
            x,  y):
   centerx, centery = circumcenter(x0, y0, x1, y1, x2, y2)
   return ((x-centerx)**2 + (y-centery)**2 <=
           (x0-centerx)**2 + (y0-centery)**2)

--
Robert Kern
[EMAIL PROTECTED]

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter

Thanks!
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to