定义一个三角形的结构体,写一个求三角形面积的函数。
利用点求三角形面积
#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;
}
利用点求三角形面积
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。