c语言:编写程序判断两个平行于坐标轴的矩形是否相交

c语言:编写程序判断两个平行于坐标轴的矩形是否相交,第1张

typedef struct RECTANGULAR

{

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7782587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存