请C++高手:判断点和三角形位置关系程序!

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:33:10
#include <iostream>
#include <cmath>
using namespace std;

class point
{
public:
double x;
double y;

point(double xx, double yy)
{
x=xx;
y=yy;
}
};

class triangle
{
public:
point a;
point b;
point c;

triangle(point aa,point bb,point cc)
{

}

double area()
{
return fabs((a.x*b.y+b.x*c.y+c.x*a.y-a.x*c.y-b.x*a.y-c.x*b.y))/2;
}
};

int main(void)
{
double a,b,c,d,e,f,x,y;
cout<<"请输入三角形三个顶点X的坐标:A(x, y)";
cin>>x>>y;

point X(x,y);

cout<<"请输入三角形三个顶点X的坐标:A(a, b)";
cin>>a>>b;
point A(a,b);

cout<<"请输入三角形三个顶点B的坐标: B(c、d)";
cin>>c>>d;
point B(c,d);

cout<<"请输入三角形三个顶点C的坐标:C(e、f)";
cin>>e

你的错误是缺少缺省构造函数,加上point(){}
还有,你的逻辑存在一定的问题。
我只把你的编译问题解决了。
判断点与三角形的关系最好用判断三组,两个点是否在剩下2个点的线的同侧。
你可以参考:http://hi.baidu.com/luosiyong/blog/item/23cced58a6542284810a185b.html
#include <iostream>
#include <cmath>
using namespace std;

class point
{
public:
double x;
double y;
point(){}

point(double xx, double yy)
{
x=xx;
y=yy;
}
};

class triangle
{
public:
point a;
point b;
point c;

triangle(point aa,point bb,point cc)
{
a=aa;
b=bb;
c=cc;
}

double area()
{
return fabs((a.x*b.y+b.x*c.y+c.x*a.y-a.x*c.y-b.x*a.y-c.x*b.y))/2;
}
};

int main(void)
{
double a,b,c,d,e,f,x,y;