用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行.Output 点在三角形内,输出In 点
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 12:05:41
![用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行.Output 点在三角形内,输出In 点](/uploads/image/z/2092827-3-7.jpg?t=%E7%94%A8C%E8%AF%AD%E8%A8%80%E5%88%A4%E6%96%AD%E7%82%B9%E4%B8%8E%E4%B8%89%E8%A7%92%E5%BD%A2%E7%9A%84%E4%BD%8D%E7%BD%AE%E5%85%B3%E7%B3%BBDescription+%E8%AF%BB%E5%85%A5%E4%B8%80%E7%82%B9%E7%9A%84%E5%9D%90%E6%A0%87%E5%92%8C%E4%B8%89%E8%A7%92%E5%BD%A2%E7%9A%84%E9%A1%B6%E7%82%B9%E5%9D%90%E6%A0%87%2C%E5%88%A4%E6%96%AD%E8%AF%A5%E7%82%B9%E5%9C%A8%E4%B8%89%E8%A7%92%E5%BD%A2%E5%86%85%2C%E5%9C%A8%E4%B8%89%E8%A7%92%E5%BD%A2%E8%BE%B9%E7%95%8C%E4%B8%8A%2C%E8%BF%98%E6%98%AF%E5%9C%A8%E8%BE%B9%E7%95%8C%E4%B9%8B%E5%A4%96.Input+4%E4%B8%AA%E7%82%B9%E5%9D%90%E6%A0%87%2C%E6%AF%8F%E4%B8%AA%E4%B8%80%E8%A1%8C.Output+%E7%82%B9%E5%9C%A8%E4%B8%89%E8%A7%92%E5%BD%A2%E5%86%85%2C%E8%BE%93%E5%87%BAIn+%E7%82%B9)
用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行.Output 点在三角形内,输出In 点
用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)
用C语言判断点与三角形的位置关系Description 读入一点的坐标和三角形的顶点坐标,判断该点在三角形内,在三角形边界上,还是在边界之外.Input 4个点坐标,每个一行.Output 点在三角形内,输出In 点
是逻辑错误还是语句错误啊?
是语句错误的话麻烦把错误内容发上来.
如果是逻辑错误的话,我不明白你那个Sabcd是做什么的,
在代码段
if(abs(Sabcd,Sabc)