typedef struct mypt { double x,y; } MYPT; double dist(MYPT p1,MYPT p2); MYPT circcenter(MYPT p1,MYPT p2,MYPT p3) { MYPT mid1,mid2,end1,end2; MYPT c; double ua,ub; mid1.x=(p1.x+p2.x)/(float)2; mid1.y=(p1.y+p2.y)/(float)2; end1.x=mid1.x-(p1.y-p2.y); end1.y=mid1.y+(p1.x-p2.x); mid2.x=(p2.x+p3.x)/(float)2; mid2.y=(p2.y+p3.y)/(float)2; end2.x=mid2.x-(p2.y-p3.y); end2.y=mid2.y+(p2.x-p3.x); PRINT(mid1); PRINT(end1); PRINT(mid2); PRINT(end2); #define X1 mid1.x #define Y1 mid1.y #define X2 end1.x #define Y2 end1.y #define X3 mid2.x #define Y3 mid2.y #define X4 end2.x #define Y4 end2.y /*ua=(end2.x-mid2.x)*(mid1.y-mid2.y)-(end2.y-mid2.y)*(mid1.x-mid2.x)/\ (end2.y-mid2.y)*(end1.x-mid1.x)-(end2.x-mid2.x)*(end1.y-mid1.y); ub=(end1.x-mid1.x)*(mid1.y-mid*/ ua=((X4-X3)*(Y1-Y3)-(Y4-Y3)*(X1-X3))/\ ((Y4-Y3)*(X2-X1)-(X4-X3)*(Y2-Y1)); /*ub=((X2-X1)*(Y1-Y3)-(Y2-Y1)*(X1-X3))/\ ((Y4-Y3)*(X2-X1)-(X4-X3)*(Y2-Y1));*/ printf("%f, %f\n",ua,ub); c.x=X1+ua*(X2-X1); c.y=Y1+ua*(Y2-Y1); return c; }