PHP判断两个矩形是否相交
2024-09-06 06:39:18
<?php $s = is_rect_intersect(1,2,1,2,4,5,0,3);
var_dump($s); /*
如果两个矩形相交,那么矩形A B的中心点和矩形的边长是有一定关系的。
Case 2345中,两个中心点间的距离肯定小于AB边长和的一半。
Case 1中就像等了。
设A[x01,y01,x02,y02] B[x11,y11,x12,y12].
矩形A和矩形B物理中心点X方向的距离为Lx:abs( (x01+x02)/2 – (x11+x12) /2)
矩形A和矩形B物理中心点Y方向的距离为Ly:abs( (y01+y02)/2 – (y11+y12) /2)
矩形A和矩形B X方向的边长为 Sax:abs(x01-x02) Sbx: abs(x11-x12)
矩形A和矩形B Y方向的边长为 Say:abs(y01-y02) Sby: abs(y11-y12)
如果AB相交,则满足下列关系:
Lx <= (Sax + Sbx)/2 && Ly <=(Say+ Sby)/2
参考地址:https://blog.csdn.net/szfhy/article/details/49740191
*/
function is_rect_intersect($x01,$x02,$y01,$y02,$x11,$x12,$y11,$y12){
$zx = abs($x01+$x02-$x11-$x12);
$x = abs($x01 - $x02) + abs($x11 - $x12);
$zy = abs($y01 + $y02 - $y11 - $y12);
$y = abs($y01 - $y02) + abs($y11 - $y12);
if($zx <= $x && $zy <= $y){
return 1;
}else{
return 0;
}
}
最新文章
- jQuery EasyUI教程之datagrid应用(二)
- npm命令ionic安装失败cordova安装失败解决方法
- SELinux关闭和开启
- android: SQLite删除数据
- Android的init过程(二):初始化语言(init.rc)解析【转】
- CXF之三 Tomcat中发布Web Service
- POJ-3189-Steady Cow Assignment(最大流+枚举)
- 捕android程序崩溃日志
- css直接写出小三角
- WPF实现界面动态布局
- React中使用CSSTransitionGroup插件实现轮播图
- linux cut命令详解
- arcgis api 3.x for js 入门开发系列二十一气泡窗口信息动态配置模板
- kubernetes 安装metrics-server
- ZooKeeper如何完成分布式锁?
- EF切EFCore2.0存储过程问题
- WordPress版微信小程序2.0版本发布
- div的全屏与退出全屏
- 知识笔记:jQuery 事件对象属性小结
- 无法执行磁盘检查因为windows无法访问
热门文章
- JAVA操作cassandra数据库
- 面向对象(static关键字)
- WPF中数据绑定问题
- [hdu4738]求桥模板
- 【机器学习】文本分类——朴素贝叶斯Bayes
- shell程序---编译目录下全部.c或.cpp文件
- RPC原理与实践(一)----RPC原理与实现(Thrift版)
- @functions @model @using
- Flask中的后端并发思考(以Mysql:too many connections为例)
- [51nod] 1289 大鱼吃小鱼 堆栈-模拟