社区
C++ 语言
帖子详情
新手询问两个多边形相交的检测
beginera
2008-04-17 10:33:26
新手,想不出来啊,数学好烂,最好能给段关键代码,不要用API实现的。
搜了一下,好像都没有代码,都是理论,还是希望能看到理论和代码一起的东西啊,另外看到好像提到什么效率的问题,要先做box做检测,然后再检测多边形是么?不太懂,2D游戏学习新手,所以这第一关多边形检测就卡住了,请大家帮忙!
...全文
234
18
打赏
收藏
新手询问两个多边形相交的检测
新手,想不出来啊,数学好烂,最好能给段关键代码,不要用API实现的。 搜了一下,好像都没有代码,都是理论,还是希望能看到理论和代码一起的东西啊,另外看到好像提到什么效率的问题,要先做box做检测,然后再检测多边形是么?不太懂,2D游戏学习新手,所以这第一关多边形检测就卡住了,请大家帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kratos
2008-04-18
打赏
举报
回复
2d游戏没这么多检查吧,就是测矩形重叠状况,2L已经讲了。。
liveforme
2008-04-18
打赏
举报
回复
最简单就是判断点了,多边形每个点去判断下,要是不要求很高的效率的话,还是很实在的方法
Unknowm
2008-04-18
打赏
举报
回复
http://blog.csdn.net/Unknowm/archive/2006/05/08/713666.aspx
http://blog.csdn.net/Unknowm/archive/2006/05/14/728735.aspx
http://blog.csdn.net/Unknowm/archive/2006/05/15/740106.aspx
http://blog.csdn.net/Unknowm/archive/2006/05/18/743418.aspx
http://blog.csdn.net/Unknowm/archive/2006/05/23/752102.aspx
http://blog.csdn.net/Unknowm/archive/2006/06/04/773197.aspx
xbt746
2008-04-18
打赏
举报
回复
可以查一下地理信息算法
上面基本上都有
Dancing_Sea
2008-04-18
打赏
举报
回复
检测两组线是否相交。
平面线段相交就可以。
不必要判断凹凸性
ryfdizuo
2008-04-17
打赏
举报
回复
可以去Google一下:AABB2
判断多边形的凹凸性,
凹的还要分解,
andy_cai
2008-04-17
打赏
举报
回复
噢,我的方法居然也有人说
我是临时想到了...
帮你想想也是蛮费脑的呢
编写能用的代码的话要考虑各种情况,太烦
beginera
2008-04-17
打赏
举报
回复
6楼,您说的那个我有代码,也是做法线的,不过是鸟语的,不能完全看懂,其实根本原因是我数学有点烂...所以才发的这贴希望有人能理论和代码都讲一下。
7楼,您说的那个是点包含在多边形内吧?这个我也有代码,不过我想要的是两个多边形的判断,如果是多边形各点已经,比如五边形就要算和另一个多边形进行5次判断么?
beginera
2008-04-17
打赏
举报
回复
啊,另外二楼说的是rect是矩形吧,我想要多边形的,矩形的那个我理解,也有代码了。
beginera
2008-04-17
打赏
举报
回复
谢谢,我去搜搜计算几何一书,忘了说了,这个多边形就是突多边形就行。谢谢回复,我试试先。
haohaisen
2008-04-17
打赏
举报
回复
同意2楼,有空可看看《计算几何》——周培德
tgh621
2008-04-17
打赏
举报
回复
直接判断相互判断一个多边行的关键点是否在另一个多变兴中赛
andy_cai
2008-04-17
打赏
举报
回复
题目好大,多边形有各种方式的
个人觉得从相交点处理比较好,顺时针或者逆时针方向处理
从点出发顺着各自边走,判断各自边的法向分量(总结下规律)判断是不是重叠区域
如果多边形都未知的话,那就要先找出多边形的各点坐标了
有理论就已经很不错,有源代码估计大家也不会去怎么理睬理论
oo
2008-04-17
打赏
举报
回复
晕,想简单了
我说的是特例
tsst
2008-04-17
打赏
举报
回复
晕,楼上OO说的我怎么看不明白
tsst
2008-04-17
打赏
举报
回复
除去一些特殊情况的抽离外,基本的方法都是判断边与另一个多边形的关系了!
这样问题就转化为edge和poly的关系了嘿嘿!
具体实现有空探讨一下了,嘿!
oo
2008-04-17
打赏
举报
回复
更正一下,如果都为0,则相交于一个点。
oo
2008-04-17
打赏
举报
回复
left为两个rect最大的
right为两个rect最小的
top为两个rect最大的
bottom为两个rect最小的
width为right-left
height为bottom-top
如果width和height都为正则相交,如果一个为0,另一个为正则一条边重合,如果有负数则不相交
都为0?除非原来的不是rect
pengzhuang.rar_j2me_j2me 手机 游戏 代码_j2me 碰撞
检测
- 如果需要自定义碰撞
检测
,可以使用`Rectangle`类来创建对象的边界,并使用`intersects()`方法检查两个矩形是否
相交
。 3. **优化碰撞
检测
:** - **批次
检测
**:为了避免频繁的碰撞检查,可以将对象分组并按批次...
chipmunk 碰撞实例(类似疯狂的包子)
当两个形状
相交
时,cpSpace会自动触发碰撞回调函数,开发者可以在这里处理碰撞事件,比如让包子在碰撞后弹起或改变运动轨迹。 此外,Chipmunk的刚体(cpBody)概念也很重要。每个形状都关联着一个刚体,刚体负责...
ACM 常用模版 全是模版代码
1.4
多边形
切割:这部分可能包括如何分割
多边形
、剪切或合并两个
多边形
,以及处理交集的问题。 1.5 浮点函数:由于几何计算中涉及浮点数,模板可能包含了一些优化浮点运算效率或提高精度的方法。 1.6 面积:计算...
b2d_locationv87_物理引擎_
这是一种高效的算法,可以确定两个形状是否
相交
。碰撞
检测
不仅用于确定物体之间的接触,还用于计算碰撞后的反弹和摩擦效果。 4. **关节与约束**:物理引擎中的关节允许物体之间形成连接,例如铰链关节、滑动关节或...
nVidia Physx SDK 2.8.4
2. **碰撞
检测
(Collision Detection)**:这是PhysX的核心功能之一,它负责识别并处理物体间的接触,确保当两个物体
相交
时能够正确响应。PhysX支持多种形状的碰撞
检测
,如球体、胶囊、盒体、
多边形
网格等。 3. **...
C++ 语言
64,849
社区成员
250,501
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章