定义一个三角形的结构体,写一个求三角形面积的函数。
利用点求三角形面积
#import <Foundation/Foundation.h>
typedef struct
{
float a;
float b;
float c;
} TriangleSide;
void areaOfTriangle(TriangleSide ss)
{
float area = 0;
if (ss.a<=0||ss.b<=0||ss.c<=0)
{
printf("不是三角形!");
}else if(ss.a+ss.b<=ss.c||ss.a+ss.c<=ss.b||ss.b+ss.c<=ss.a)
{
printf("不是三角形!");
}else
{
float p = (ss.a + ss.b + ss.c) / 2.0;
area = sqrt(p*(p-ss.a)*(p-ss.b)*(p-ss.c));
printf("AREA = %g",area);
}
}
typedef struct
{
int x1,y1;
int x2,y2;
int x3,y3;
} TrianglePoint;
TriangleSide demondSideWithPoint(TrianglePoint pp)
{
TriangleSide ss;
//求1.2之间的线段长度
if (pp.x1>=pp.x2)//比较点坐标大小,用大数减掉小数;
{
int x12 = pp.x1 - pp.x2;
if (pp.y1>=pp.y2)
{
int y12 = pp.y1 - pp.y2;
ss.a = fabs(sqrt(x12 * x12 + y12 * y12));
}else
{
int y12 = pp.y2 - pp.y1;
ss.a = fabs(sqrt(x12 * x12 + y12 * y12));
}
}else
{
int x12 = pp.x2 - pp.x1;
if (pp.y1>=pp.y2)
{
int y12 = pp.y2 - pp.y1;
ss.a = fabs(sqrt(x12 * x12 + y12 * y12));
}else
{
int y12 = pp.y2 - pp.y1;
ss.a = fabs(sqrt(x12 * x12 + y12 * y12));
}
}
//求1.3之间的线段长度
if (pp.x1>=pp.x3)//比较点坐标大小,用大数减掉小数;
{
int x13 = pp.x1 - pp.x3;
if (pp.y1>=pp.y3)
{
int y13 = pp.y1 - pp.y3;
ss.b = fabs(sqrt(x13 * x13 + y13 * y13));
}else
{
int y13 = pp.y3 - pp.y1;
ss.b = fabs(sqrt(x13 * x13 + y13 * y13));
}
}else
{
int x13 = pp.x3 - pp.x1;
if (pp.y1>=pp.y3)
{
int y13 = pp.y3 - pp.y1;
ss.b = fabs(sqrt(x13 * x13 + y13 * y13));
}else
{
int y13 = pp.y3 - pp.y1;
ss.b = fabs(sqrt(x13 * x13 + y13 * y13));
}
}
//求1.3之间的线段长度
if (pp.x2>=pp.x3)//比较点坐标大小,用大数减掉小数;
{
int x23 = pp.x2 - pp.x3;
if (pp.y2>=pp.y3)
{
int y23 = pp.y2 - pp.y3;
ss.c = fabs(sqrt(x23 * x23 + y23 * y23));
}else
{
int y23 = pp.y3 - pp.y2;
ss.c = fabs(sqrt(x23 * x23 + y23 * y23));
}
}else
{
int x23 = pp.x3 - pp.x2;
if (pp.y2>=pp.y3)
{
int y23 = pp.y3 - pp.y2;
ss.c = fabs(sqrt(x23 * x23 + y23 * y23));
}else
{
int y23 = pp.y3 - pp.y2;
ss.c = fabs(sqrt(x23 * x23 + y23 * y23));
}
}
return ss;
}
int main(int argc, const char * argv[])
{
printf("Input three triangle point:\n");
TrianglePoint p;
scanf("%d%d%d%d%d%d",&p.x1,&p.y1,&p.x2,&p.y2,&p.x3,&p.y3);
TriangleSide s = demondSideWithPoint(p);
areaOfTriangle(s);
return 0;
}
利用点求三角形面积
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...