在平面坐标系中,三角形外心坐标怎么求?用c语言写

Python020

在平面坐标系中,三角形外心坐标怎么求?用c语言写,第1张

# include<stdio.h>

# include<math.h>

double X1,Y1,X2,Y2,X3,Y3,x4,y4,length1,length2,length3

int a

void myprintf(double x1,double y1,double x2,double y2,double x3,double y3)

{

char ch

printf("输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

while(scanf("(%lf,%lf)",&X1,&Y1)!=2)

{

while((ch=getchar())!='\n')

{

continue

}

printf("输入有误,请重新输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

}

while((ch=getchar())!='\n')

{

continue

}

printf("输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

while(scanf("(%lf,%lf)",&X2,&Y2)!=2)

{

while((ch=getchar())!='\n')

{

continue

}

printf("输入有误,请重新输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

}

while((ch=getchar())!='\n')

{

continue

}

printf("输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

while(scanf("(%lf,%lf)",&X3,&Y3)!=2)

{

while((ch=getchar())!='\n')

{

continue

}

printf("输入有误,请重新输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):")

}

while((ch=getchar())!='\n')

{

continue

}

}

void main()

{

myprintf(X1,Y2,X2,Y2,X3,Y3)

length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2))

length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2))

length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2))

while((length1>=length2+length3)||(length2>=length1+length3)||length3>=length1+length2)

{

printf("输入的三个点不能构成三角形,请重新输入\n")

myprintf(X1,Y2,X2,Y2,X3,Y3)

length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2))

length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2))

length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2))

}

x4=(pow(X2,2)*Y1-pow(X3,2)*Y1-pow(X1,2)*Y2+pow(X3,2)*Y2-pow(Y1,2)*Y2+pow(Y2,2)*Y1+pow(X1,2)*Y3-pow(X2,2)*Y3+pow(Y1,2)*Y3-pow(Y2,2)*Y3-pow(Y3,2)*Y1+pow(Y3,2)*Y2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3))

y4=-(-pow(X1,2)*X2+pow(X2,2)*X1+pow(X1,2)*X3-pow(X2,2)*X3-pow(X3,2)*X1+pow(X3,2)*X2-pow(Y1,2)*X2+pow(Y1,2)*X3+pow(Y2,2)*X1-pow(Y2,2)*X3-pow(Y3,2)*X1+pow(X3,2)*X2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3))

printf("此三角形外心坐标为(%lf,%lf)\n",x4,y4)

}

参考:http://wenku.baidu.com/view/88d4f2c6d5bbfd0a79567312.html

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

void main()

{

    float a,b,c,temp

    printf("请输入三个数:\n")

    scanf("%f%f%f",&a,&b,&c)

    printf("您输入的三个数是:\n")

    printf("%f\t%f\t%f\n",a,b,c)

    //判断哪个是最长的边

    if(a<b)

    {

        temp = a

        a = b

        b = temp

    }

    if (a<c)

    {

        temp = a

        a = c

        c = temp

    }

    printf("现在的三个数:\n")

    printf("%f\t%f\t%f\n",a,b,c)//现在a是最长边了

    if ((a+b>c)&&(a+c>b)&&(b+c>a)&&fabs(a*a-b*b-c*c)<1e-6)//浮点数不能直接判断等于不等于

        printf("是直角三角形!!\n")

    else

        printf("不是直角三角形!!\n")

    system("pause")

}

直角三角形是一个几何图形,是有一个角为直角的三角形,有普通的直角三角形和等腰直角三角形两种。其符合勾股定理,具有一些特殊性质和判定方法。

直角三角形如图所示:分为两种情况,有普通的直角三角形,还有等腰直角三角形(特殊情况)在直角三角形中,与直角相邻的两条边称为直角边,直角所对的边称为斜边。直角三角形直角所对的边也叫作“弦”。若两条直角边不一样长,短的那条边叫作“勾”,长的那条边叫作“股”。

等腰直角三角形是一种特殊的三角形,具有所有三角形的性质:具有稳定性、内角和为180°。两直角边相等,两锐角为45°,斜边上中线、角平分线、垂线三线合一,等腰直角三角形斜边上的高为此三角形外接圆的半径R。

等腰直角三角形的边角之间的关系 :

(1)三角形三内角和等于180°;

(2)三角形的一个外角等于和它不相邻的两个内角之和;

(3)三角形的一外角大于任何一个和它不相邻的内角;

(4)三角形两边之和大于第三边,两边之差小于第三边;

(5)在同一个三角形内,大边对大角,大角对大边.

等腰直角三角形中的四条特殊的线段:角平分线,中线,高,中位线.

(1)三角形的角平分线的交点叫做三角形的内心,它是三角形内切圆的圆心,它到各边的距离相等.

(三角形的外接圆圆心,即外心,是三角形三边的垂直平分线的交点,它到三个顶点的距离相等).

(2)三角形的三条中线的交点叫三角形的重心,它到每个顶点的距离等于它到对边中点的距离的2倍。

(3)三角形的三条高的交点叫做三角形的垂心。

(4)三角形的中位线平行于第三边且等于第三边的二分之一。

(5)三角形的一条内角平分线与两条外角平分线交于一点,该点即为三角形的旁心。

注意:

①任意三角形的内心、重心都在三角形的内部 .

②钝角三角形垂心、外心在三角形外部。

③直角三角形垂心、外心在三角形的边上。

(直角三角形的垂心为直角顶点,外心为斜边中点。)

④锐角三角形垂心、外心在三角形内部。

⑤任意三角形的旁心一定在三角形的外部。