社区
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验证的算法应该是什么?
...全文
249
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
作业
写回复
配置赞助广告
用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
打赏
举报
回复
自己顶下
JavaScript实用范例词典04-14
第4章 Cookie篇.... 96 4.1 将资料写入Cookie. 96 4.2 读取Cookie的值... 97 4.3 记录浏览者的姓名... 98 4.4 显示浏览次数... 99 4.5 记录浏览网站的时间... 101 4.6 只显示一次的弹出式窗口... 102 4.7 记住登录账号和密码... 103 4.8 检测浏览器是否关闭了Cookie 功能... 105 第5章 视窗篇.... 106 5.1 警告对话框... 106 5.2 在警告对话框上显示多行消息 正文... 106 5.3 确认对话框... 107 5.4 输入对话框... 108 5.5 显示网页对话框... 109 5.6 以顶层模式显示网页对话框... 110 5.7 取得浏览器窗口大小(Netscape) 110 5.8 取得浏览器窗口大小(IE) 111 5.9 设定浏览器窗口大小(IE) 112 5.10
不能
改变大小的窗口... 113 5.11 指定浏览器窗口的位置... 114 5.12 取得屏幕的大小... 114 5.13 提示浏览者更改分辨率... 115 5.14 使浏览器窗口显示于屏幕中央... 116 5.15 使浏览器窗口显示于屏幕左上角... 117 5.16 使浏览器窗口显示于屏幕右下角... 118 5.17 使浏览器窗口大小适合于屏幕 大小... 119 5.18 窗口的从天而降效果... 120 5.19 振动的窗口... 122 5.20 窗口缩小效果... 123 5.21 窗口的自动向下滚动... 124 5.22 窗口的自动向右滚动... 125 5.23 双击鼠标滚动窗口/单击鼠标停止 滚动... 126 5.24 去掉窗口滚动条... 127 5.25 让滚动条在窗口左边出现... 128 5.26 改变窗口滚动条的样式... 129 5.27
不能
最小化的窗口... 130 5.28 改变在浏览器地址栏中显示的 图标... 131 5.29 弹出
一个
新窗口... 131 5.30 弹出
一个
无属性栏的窗口... 132 5.31 弹出广告窗口... 133 5.32 弹出多个窗口... 134 5.33 指定弹出窗口的位置(IE) 135 5.34 指定弹出窗口的位置(Netscape) 136 5.35 弹出
一个
居中显示的窗口... 137 5.36 弹出
一个
全屏幕窗口... 138 5.37 在弹出的窗口中显示菜单... 139 5.38 在弹出的窗口中显示标准按钮栏... 140 5.39 在弹出的窗口中显示地址栏... 141 5.40 在弹出的窗口中显示状态栏... 141 5.41 在弹出的窗口中显示滑块... 142 5.42 允许调整弹出窗口的大小... 143 5.43 弹出
一个
顶层窗口... 144 5.44 关闭窗口... 145 5.45 在主窗口上关闭弹出式窗口... 146 5.46 在弹出式窗口上关闭主窗口... 146 5.47 将主窗口中的资料输出到弹出式 窗口中... 147 5.48 将弹出式窗口的资料输入到 主窗口中... 149 5.49 弹出
一个
自动关闭的窗口... 150 第6章 文字篇.... 152 6.1 连接字符串... 152 6.2 比较两个字符串... 153 6.3 取得字符串的长度... 154 6.4 英文字母大小写转换... 155 6.5 取得字符串中指定位置的字符... 156 6.6 取得指定Unicode值所表示的 字符... 157 6.7 搜索字符串... 158 6.8 从右至左搜索字符串... 159 6.9 撷取部分字符串... 160 6.10 将字符串分割成单个字符... 161 6.11 使用指定的字符分割字符串... 162 6.12 发光特效文字... 163 6.13 阴影特效文字... 164 6.14 半透明文字... 165 6.15 水波文字... 166 6.16 鼠标移上去后改变文字的颜色... 167 6.17 鼠标移上去后改变文字的样式... 168 6.18 让浏览者自己选择网页文字的 大小... 168 6.19 让浏览者自己选择网页文字的 颜色... 169 6.20 动态缩放文字... 170 6.21
HTML理论知识
注意点①canvas图像的渲染有别于html图像的渲染,canvas的渲染极快,不会出现代码覆盖后延迟渲染的问题,写canvas代码一定要具有同步思想,在获取上下文时,一定要先判断.②画布
高宽
的问题:画布默认
高宽
300*150.切记一定要使用html的attribute的形式来定义画布的宽高,通过css形式定义会缩放画布内的图像.③绘制矩形的问题:a.边框宽度的问题,边框宽度是在偏移量上下分别渲染一半,可能会出现小数边框,一旦出现小数边框都会向上取整;
2023前端面试题总结(html,css,
js
)
BFC - Block Formatting Context 块级格式化上下文, BFC是一块独立的渲染区域,可以将BFC看成是元素的一种属性,拥有了这种属性的元素就会使他的子元素与世隔绝,不会影响到外部其他元素。特点:1,每
一个
BFC区域只包括其子元素,不包括其子元素的子元素。2,每
一个
BFC区域都是独立隔绝的,互不影响怎样使
一个
元素变成BFC区域1、body根元素2、float属性不为none3、position为absolute或fixed4、行内块显示模式,inline-block。
前端面试经典题目合集(HTML+CSS)
(整理自网络,侵删)1、浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层、表示层、行为层 分别是:HTML、CSS、JavaScript 作用:HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能与业务。2、HTML5的优点与缺点?优点: a、网络标准统一、HTML5本身是由W3C推荐出来的; ...
JavaScript 深度学习(二)
原文:zh.annas-archive.org/md5/ea99677736c22d68b5818a18b5a9213a 译者:飞龙 协议:CC BY-NC-SA 4.0 第四章:使用卷积神经网络识别图像和声音 本章内容涵盖 图像和其他知觉数据(例如音频)如何表示为多维张量 卷积神经网络是什么、如何工作以及为什么它们特别适用于涉及图像的机器学习任务 如何编写和训练
一个
TensorFlow.
js
中的卷积神经网络来解决手写数字分类的任务 如何在 Node.
js
中训练模型以实现更快的训练
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章