c语言判断三角形坐标系,用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行....

b357216499010bdf2c78f9eb61d172be.png用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行.Output 点在三角形内,输出In 点

2015-11-12

用C语言判断点与三角形的位置关系

Description

读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.

Input

4个点坐标,每个一行.

Output

点在三角形内,输出In

点在三角形边上,输出On

点在三角形外,输出Out

Sample Input

0 0

-1 0

1 0

0 1

Sample Output

On

*

*

*

这道题我做的是

#include

#include

main()

{

double Dx,Dy,Ax,Ay,Bx,By,Cx,Cy,p,p1,p2,p3,AB,AC,BC,DA,DB,DC,Sabc,Sabcd;

scanf("%d%d",&Dx,&Dy);

scanf("%d%d",&Ax,&Ay);

scanf("%d%d",&Bx,&By);

scanf("%d%d",&Cx,&Cy);

AB=sqrt((Ax-Bx)*(Ax-Bx)+(Ay-By)*(Ay-By));

BC=sqrt((Cx-Bx)*(Cx-Bx)+(Cy-By)*(Cy-By));

AC=sqrt((Ax-Cx)*(Ax-Cx)+(Ay-Cy)*(Ay-Cy));

DA=sqrt((Ax-Dx)*(Ax-Dx)+(Ay-Dy)*(Ay-Dy));

DB=sqrt((Bx-Dx)*(Bx-Dx)+(By-Dy)*(By-Dy));

DC=sqrt((Bx-Dx)*(Bx-Dx)+(By-Dy)*(By-Dy));

p=(AB+BC+AC)/2;

p1=(AC+DC+DA)/2;

p2=(AB+DB+DA)/2;

p3=(BC+DC+DB)/2;

Sabc=sqrt(p*(p-AB)*(p-BC)*(p-AC));

Sabcd=sqrt(p1*(p1-AC)*(p1-DC)*(p1-DA))+sqrt(p2*(p2-AB)*(p2-DB)*(p2-DA))+sqrt(p3*(p3-BC)*(p3-DC)*(p3-DB));

if((Dy-Cy)*(Ax-Cx)==(Dx-Cx)*(Ay-Cy)||(Dy-Cy)*(Bx-Cx)==(Dx-Cx)*(By-Cy)||(Dy-Ay)*(Bx-Ax)==(Dx-Ax)*(By-Ay))

{

if(abs(Sabcd,Sabc)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值