Mega Code Archive

 
Categories / C / Math
 

Circle Through Three Points

#include <stdio.h> #include <math.h> #include <conio.h> int main() { clrscr(); double f,g,m,x1,x2,x3,y1,y2,y3; double c,d,h,e,k,r,s; for(;;) { if(scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3)==EOF) //checking for input break; f = x3*x3-x3*x2-x1*x3+x1*x2+y3*y3-y3*y2-y1*y3+y1*y2; //formula g = x3*y1-x3*y2+x1*y2-x1*y3+x2*y3-x2*y1; if(g==0) m = 0; else m = (f/g); c = (m*y2)-x2-x1-(m*y1); //formula d = (m*x1)-y1-y2-(x2*m); e = (x1*x2)+(y1*y2)-(m*x1*y2)+(m*x2*y1); h = (c/2); //formula k = (d/2); s = (((h)*(h))+((k)*(k))-e); r = pow(s,.5); printf("(x"); if(h>=0) printf(" + "); else if(h<0) printf(" - "); if(h<0) h=-h; printf("%.3lf)^2",(h)); printf(" + "); printf("(y"); if(k>=0) printf(" + "); else if(k<0) printf(" - "); if(k<0) k=-k; printf("%.3lf)^2 = %.3lf^2",(k),r); printf(" "); printf("x^2 + y^2"); if(c>=0) printf(" + "); else if(c<0) printf(" - "); if(c<0) c=-c; printf("%.3lfx",c); if(d>=0) printf(" + "); else if(d<0) printf(" - "); if(d<0) d=-d; printf("%.3lfy",d); if(e>=0) printf(" + "); else if(e<0) printf(" - "); if(e<0) e=-e; printf("%.3lf = 0",e); printf(" "); } getch(); return 0; }