各位大虾们,帮小弟看看这个怎么回事
我是想求出两条直线(取的直线相交)的交点,但是得不到想要的结果,这个自己真不知道怎么办了,特向各位大虾求助,谢谢各位!
代码如下:
程序代码:#include <iostream>
#include <cmath>
using namespace std;
class point{
public:
point(int xx,int yy)
{
x=xx;y=yy;
}
point(){};
~point(){}
point(point &p)
{
x=p.x;y=p.y;
}
int getx(){return x;}
int gety(){return y;}
private:
int x,y;
};
class line{
public:
line(point pt1,point pt2):p1(pt1),p2(pt2)
{
double k=(p2.gety()-p1.gety())/(p2.getx()-p1.getx()); //求出斜率K
double b=(p1.gety()-k*p1.getx()); //求出b
}
line(){}
line(line &l):p1(l.p1),p2(l.p2)
{
k=l.k;b=l.b;
}
friend point jd(line &l1,line &l2)
{
point p((l1.b-l2.b)/(l2.k-l1.k),l1.k*(l1.b-l2.b)/(l2.k-l1.k));
return p;
}
private:
point p1,p2;
double k,b;
};
void main()
{
point p1(0,0),p2(2,2),p3(0,2),p4(2,0); //初始化4点
line l1(p1,p2),l2(p3,p4); //两条不相交的直线
point px(jd(l1,l2));
cout<<px.getx()<<"\t"<<px.gety()<<endl;
}[ 本帖最后由 cnsongzi 于 2011-5-20 20:36 编辑 ]











