Sunday, April 8, 2012

Circle Through Three Points

This a program that given the Cartesian coordinates of three points on a plane, will find the equation of the circle through them all.
Through this program u can create a equation.

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

No comments:

Post a Comment