请教如何判断页面上两个菱形是否有重叠?

smuwcwt 2012-10-08 11:14:28

页面上的菱形实际上可以理解为是正方形旋转了45度,就是说夹角为90度,四边等长。

菱形之间的大小不一,可以取得它们的坐标,大小尺寸,请教一下有什么好的算法判断两个菱形之间是否有重叠呢?谢谢大家。
...全文
417 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2012-10-08
  • 打赏
  • 举报
回复
检查一个菱形的任意顶点 是否在另外一个菱形里面
好的算法还是去百度或者维基把上面大把的
笨笨熊三号 2012-10-08
  • 打赏
  • 举报
回复
如果只要判断是否重叠而不用考虑重叠面积:两菱形中点坐标相连并向下作垂线构成三角形,两中点距离乘以上角Sin值,大于等于两菱形连长之和的二分之一则不相交,否则相交。(纯数学方法考虑的,不知道你实际场景合不合用)
「已注销」 2012-10-08
  • 打赏
  • 举报
回复
方法不错,学习了
KK3K2005 2012-10-08
  • 打赏
  • 举报
回复
解法1
1)菱形是4个直角三角形(菱形中心点画十字)
2)一个点必定在这4个三角形的某个象限里面
3)当这个点

相对他所在的这个区域的三角形的底边的交叉点的线段的乘积/2
大于
交叉点所在区域三角形的面积
则 你懂的

我感觉是这样 初中的几何就可以解了


解法2 当一个菱形的任意一条边 或者 该边的2边的延长线 和另外一个菱形的任意边相交 则判定碰撞
smuwcwt 2012-10-08
  • 打赏
  • 举报
回复
这个我也想过,问题就在于如何判断一个点是否在菱形内,判断一个点是否在矩形内的很简单。但判断点在菱形内的方法有人能说一下么?谢谢
  • 打赏
  • 举报
回复
泡泡鱼_ 2012-10-08
  • 打赏
  • 举报
回复
1楼已经说了一个解决方法了呀。自己组合下逻辑就是了

1:先取得要判断是否重叠的两个菱形4个顶点的坐标
2:然后先以其中一个做为参照物,拿另一个的四个顶点坐标来判断,是否有一个顶点的坐标被作为参照物的那个的四个顶点坐标包裹。如果是就直接返回结果了,如果不是。交换参照物再判断。如果还不是,那就说明两个没有重叠了

大致思路应该就是这样了
smuwcwt 2012-10-08
  • 打赏
  • 举报
回复
已经找过了,判断矩形是否重叠的大把,菱形的没看到

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧