我是靠谱客的博主 清秀芒果,最近开发中收集的这篇文章主要介绍记录一下,矩形相交判断,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 判断矩形是否相交,有很多种方法,比如说判断矩形的任意两条边是否相交。但是这种方法存在一个缺陷,就是当一个矩形被另外一个矩形包含的时候,没有边是相交的但是依然符合相交的定义吧。

另一种比较严格的数学方法

这个方法很简单,就是分别比较两个矩形的重心在x轴方向上和y轴方向上的距离与两个矩形的长或者宽的一半的和的大小。如果重心的在x轴和y轴上的距离都比他们边长和的一半要小就符合相交的条件。下面是代码():

#include<stdio.h>

int ab(int n){

if(n >= 0) return n ;

else return -n ; 

}

int main(){

int cases ;

int x01 , x02 , y01 , y02 ;

int x11 , x12 , y11 , y12 ;

scanf("%d" , &cases) ;

while(cases--){

scanf("%d %d %d %d" ,&x01 ,&y01 ,&x02 , &y02) ;

scanf("%d %d %d %d" ,&x11 , &y11 , &x12 , &y12) ;

int zx = ab(x01+x02-x11-x12) ; //两个矩形重心在x轴上的距离的两倍

int x = ab(x01-x02)+ab(x11-x12) ; //两矩形在x方向的边长的和

int zy = ab(y01+y02-y11-y12) ;  //重心在y轴上距离的两倍

int y = ab(y01-y02)+ab(y11-y12) ; //y方向边长的和

if(zx <= x && zy <= y)

printf("YESn") ;

else printf("NOn") ;

}

return 0 ;

}

最后

以上就是清秀芒果为你收集整理的记录一下,矩形相交判断的全部内容,希望文章能够帮你解决记录一下,矩形相交判断所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部