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;
}


Output:
 
birwa.org


Post a Comment