社区
JavaScript
帖子详情
一个JS验证:坐标+高宽使图片不能重叠
Allan168
2010-10-18 10:32:08
请教
c#绘图graphics.DrawImage(x,y,width,height)
我现在在页面上某区域画多个图(比如画11个)
所以图片1(x1,y1,width1,height1);
图片2(x2,y2,width2,height2);
图片3(x3,y3,width3,height3)......
但每个图之间不允许有重叠(每个图有x,y,width,height四个已知元素),
需要一个JS验证的方法
请问这个JS验证的算法应该是什么?
...全文
296
6
打赏
收藏
一个JS验证:坐标+高宽使图片不能重叠
请教 c#绘图graphics.DrawImage(x,y,width,height) 我现在在页面上某区域画多个图(比如画11个) 所以图片1(x1,y1,width1,height1); 图片2(x2,y2,width2,height2); 图片3(x3,y3,width3,height3)...... 但每个图之间不允许有重叠(每个图有x,y,width,height四个已知元素), 需要一个JS验证的方法 请问这个JS验证的算法应该是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
碧海情天-赵亮
2010-10-20
打赏
举报
回复
[Quote=引用 4 楼 theforever 的回复:]
既然是画圆,就应该是(x1,y1,R);
怎么是(x1,y1,width1,height1);呢
平白让问题麻烦了。
判断两个圆是否有交集的方法,就是算出(x1,y1)到(x2,y2)的直线距离,看它是否小于2R,如果小于,就说明有交集。
[/Quote]
老了,眼神不好了,硬是把那么多个“图”看成“圆”了。
如果是矩形重叠判断的话,更容易了,不需求第三方数据,直接利用现有的数据就可以了。
具体情况,要看你的(X1,Y1)代表的点是什么,是矩形的中心点,还是左上角的点。
然后,无论是怎样,求出每个矩形的左上角坐标(X1,Y1),和右下角坐标(X2,Y2)就可以。
然后,依次把每个矩形的(X1,X2)和(Y1,Y2)分别存入XA,YA两个数组中。
循环XA数组,每个矩形都有一对(X1,X2),对应的是一段横向直线段。
1.如果所有横线段都有间隔,就说明无论Y如何,肯定已经没有重叠的可能了。
2.如果有部分横线段有交集,这个交集判断,容易吧,就是 IF((aX1>bX1&&aX1<bX2)||(aX2>bX1&&aX2<bX2)),记录下它所属的矩形ID。然后进入对YA数组的判断,在这轮判断,和上轮其实相同,只是把XA数组变成了YA数组,IF((aX1>bX1&&aX1<bX2)||(aX2>bX1&&aX2<bX2))变成了IF((aY1>bY1&&aY1<bY2)||(aY2>bY1&&aY2<bY2)),这样,如何还有中招的,就表明是重叠了,对应的ID也能获知。
概括起来,原理就是分别作一次水平是否有交集的测试,对有交集的再作一轮垂直是否有交集的测试。如果两个方向都有交集,就证明重叠。
hoojo
2010-10-19
打赏
举报
回复
用坐标和宽度判断重叠应该是可以的
取得交集
碧海情天-赵亮
2010-10-19
打赏
举报
回复
既然是画圆,就应该是(x1,y1,R);
怎么是(x1,y1,width1,height1);呢
平白让问题麻烦了。
判断两个圆是否有交集的方法,就是算出(x1,y1)到(x2,y2)的直线距离,看它是否小于2R,如果小于,就说明有交集。
Allan168
2010-10-18
打赏
举报
回复
我暂时想到的是:
x2 >= (x1 + width1) && y2 >= (y1 + height1)
x3 >= (x2 + width2) && y3 >= (y2 + height2)
......
但有个问题,如果
x2 <=(x1 + width1) 那么 y2 必须<= (y1 + height1)
......
s_liangchao1s
2010-10-18
打赏
举报
回复
可以近似想象成简单的<碰撞算法>
Allan168
2010-10-18
打赏
举报
回复
自己顶下
canvas实现
图片
标注之Fabric.
js
从入门学习到实现labelImg矩形多边形标注工具【下】
本文介绍如何使用Fabric.
js
在Canvas上实现矩形和多边形图像标注功能,涵盖画布初始化、
坐标
转换、标签管理、辅助线、回显绘制及数据导出等功能,并提供了复制粘贴、多边形规则化、性能优化等进阶特性,适用于前端图像处理应用场景。
vue添加
图片
水印脱敏,动态水印字体大小、间距
本文介绍了如何在前端项目中使用JavaScript实现实时动态调整水印字体大小和间距,以适应不同
图片
尺寸,解决了传统水印密集问题。通过设置最小字体和密度,以及根据
图片
宽度智能调整,提升了用户体验。
html浏览器影响
js
问题,从html,css,javascript三方面谈谈“浏览器兼容性”的问题
本文详细列举了各种常见的CSS在不同浏览器间存在的兼容性问题,包括外补丁和内补丁默认值不一致、IE的CSS hack、浮动元素的margin问题、行内属性标签的display设置、最小高度min-height的兼容、
图片
间距、行高line-height在IE6的表现、浏览器CSS前缀、清除浮动的最佳实践、边距
重叠
解决方法等,并提供了相应的解决方案和代码示例。
html5属性浏览器
不能
用,从html,css,javascript三方面谈谈“浏览器兼容性”的问题
本文详细探讨了CSS在不同浏览器下的兼容性问题,包括IE的条件注释hack、float与margin的间距bug、行内与块级元素的转换、背景
图片
和表格布局、高度控制、CSS3特性支持、IE特有的定位和CSS hack方法。涵盖了div+CSS布局、
图片
间距调整、透明度处理、背景
图片
缓存、列表对齐等实用技巧。
JavaScript强化教程 —— cocos
js
碰撞检测
本文为H5EDU机构官方HTML5培训教程,详细介绍了使用Cocos
JS
进行游戏碰撞检测的方法。通过设置游戏物体的碰撞区域,并利用cc.rectIntersectsRect函数检测两物体区域是否
重叠
来判断是否发生碰撞。
JavaScript
87,988
社区成员
224,683
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章