首先要说明的是,判断矩形相交问题的解决办法有好多,我认为我下面所记录的是最容易理解的。
首先我要说明我所解决问题的核心:如果两个矩形中心点在x,y轴上的投影长度分别小于两个矩形长、宽和的一半,则相交,反之则不相交。如图所示:
其中的r1数组的四个值所代表的意思如图所示,可以直观的看出上面两个中心投影与边的长度关系。代码如下:
#include<stdio.h>
#include<math.h>
int main() {
int r1[4], r2[4];
int r1CenterX, r1CenterY;
int r2CenterX, r2CenterY;
int r1Lenght, r1height;
int r2Lenght, r2height;
printf("请输出两个矩形:\n");
for (int i = 0; i < 4; i++)
scanf("%d", &r1[i]);
for (int i = 0; i < 4; i++)
scanf("%d", &r2[i]);
//算出中心点坐标
r1CenterX = (r1[0] + r1[2]) / 2;
r1CenterY = (r1[1] + r1[3]) / 2;
r2CenterX =