📄 判断点是否在三角形里.txt
字号:
// 2.cpp : Defines the entry point for the console application.
//
#include "iostream.h"
#include "math.h"
struct dian
{
float x;
float y;
}p[100];
float Area(struct dian a,struct dian b,struct dian c)
{ float result=0,area;
int i;
area=0;
int n=3;
p[0].x=a.x;p[0].y=a.y;
p[1].x=b.x;p[1].y=b.y;
p[2].x=c.x;p[2].y=c.y;
for(i=1;i<n;i++)
area=area+(p[i-1].x*p[i%n].y-p[i%n].x*p[i-1].y);
result=1.0*abs(area)/2;
return result;
}
//如果三个点与p点连成的三角形的面积和等于三角形的面积,那么点在三角形里
int main(int argc, char* argv[])
{
float area;
float result,a,b,c,d;
int i,j;
struct dian tmp[100],p;
area=0;
cout<<"输入点的坐标"<<endl;
cin>>p.x>>p.y;
cout<<"输入三角形三个点的坐标"<<endl;
for(i=0;i<3;i++)
cin>>tmp[i].x>>tmp[i].y;
a=Area(tmp[0],tmp[1],tmp[2]);
b=Area(p,tmp[0],tmp[1]);
c=Area(p,tmp[0],tmp[2]);
d=Area(p,tmp[1],tmp[2]);
if(a==b+c+d)
cout<<"点在三角形内"<<endl;
else
cout<<"点不在三角形里"<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -