{
int x1//平行于y轴的一条边坐标,下面同理
int y1
int x2
int y2
}*prect_typedef,rect_typedef
rect_typedef rect1,rect2
//比较两个矩形,如果其中一个矩形的某一个顶点在另外一个矩形里面,说明两个相交,返回TURE
int compare_rect(prect_typedef rect1,prect_typedef rect2)
{
int ret_val = 0
int i = 0
if(rect2->x1 >rect2->x2)
{
//比较rect1 x1
if(rect1->x1 >rect2->x2 &&rect1->x1 <rect2->x1)
{
if(rect2->y1 >rect2->y2)
{
//比较rect1 y1
if((rect1->y1 >rect2->y2 &&rect1->y1 <rect2->y1))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y2 &&rect1->y2 <rect2->y1))
{
return 1
}
}
else
{
//比较rect1 y1
if((rect1->y1 >rect2->y1 &&rect1->y1 <rect2->y2))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y1 &&rect1->y2 <rect2->y2))
{
return 1
}
}
}
//比较rect1 x2
if(rect1->x2 >rect2->x2 &&rect1->x2 <rect2->x1)
{
if(rect2->y1 >rect2->y2)
{
//比较rect1 y1
if((rect1->y1 >rect2->y2 &&rect1->y1 <rect2->y1))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y2 &&rect1->y2 <rect2->y1))
{
return 1
}
}
else
{
//比较rect1 y1
if((rect1->y1 >rect2->y1 &&rect1->y1 <rect2->y2))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y1 &&rect1->y2 <rect2->y2))
{
return 1
}
}
}
}
else
{
//比较rect1 x1
if(rect1->x1 >rect2->x1 &&rect1->x1 <rect2->x2)
{
if(rect2->y1 >rect2->y2)
{
//比较rect1 y1
if((rect1->y1 >rect2->y2 &&rect1->y1 <rect2->y1))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y2 &&rect1->y2 <rect2->y1))
{
return 1
}
}
else
{
//比较rect1 y1
if((rect1->y1 >rect2->y1 &&rect1->y1 <rect2->y2))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y1 &&rect1->y2 <rect2->y2))
{
return 1
}
}
}
//比较rect1 x2
if(rect1->x2 >rect2->x1 &&rect1->x2 <rect2->x2)
{
if(rect2->y1 >rect2->y2)
{
//比较rect1 y1
if((rect1->y1 >rect2->y2 &&rect1->y1 <rect2->y1))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y2 &&rect1->y2 <rect2->y1))
{
return 1
}
}
else
{
//比较rect1 y1
if((rect1->y1 >rect2->y1 &&rect1->y1 <rect2->y2))
{
return 1
}
//比较rect1 y2
if((rect1->y2 >rect2->y1 &&rect1->y2 <rect2->y2))
{
return 1
}
}
}
}
return 0//不相交
}
include "math.h"class point
{
public:
float x
float y
//构造函数
point(float x,float y)
{
this->x=x
this->y=y
}
}
class line
{
float a
float b
float c
public:
//构造函数
line(float a,float b,float c)
{
this->a=a
this->b=b
this->c=c
}
float getDistance(point p)
{
float x,y
x=p.x
y=p.y
return fabs(a*x+b*y+c)/sqrt(a*a+b*b)
}
}
void main()
{
float x,y
cout<<"请输入点的X坐标:"
cin>>x
cout<<"请输入点的Y坐标:"
cin>>y
point p(x,y)
float a,b,c
cout<<"请输入a:"
cin>>a
cout<<"请输入b:"
cin>>b
cout<<"请输入c:"
cin>>c
line l(a,b,c)
cout<<"点到直线的距离为:"<<l.getDistance(p)<<endl
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)