社区
数据结构与算法
帖子详情
★算法高手们:粒子碰撞检测
mngzilin
2010-07-23 08:12:11
问题:
http://topic.csdn.net/u/20100723/19/47b03f81-c82c-48f6-8868-a729fe0ac5a7.html
只要方法可行,分数都归你!~~
谢谢
...全文
430
17
打赏
收藏
★算法高手们:粒子碰撞检测
问题: http://topic.csdn.net/u/20100723/19/47b03f81-c82c-48f6-8868-a729fe0ac5a7.html 只要方法可行,分数都归你!~~ 谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mngzilin
2010-07-25
打赏
举报
回复
[Quote=引用 12 楼 mngzilin 的回复:]
引用 11 楼 zmshy2128 的回复:
已经很优化了,建议好好读我的那段文字
for (k = 1:5000) //循环每个粒子
进行更新粒子k的坐标x、y
在大数组中,以坐标(x,y)为中心,检测半径r内的所有点的值,如果存在点的值不为0(假设有值为k2的点),则该点与其他点相撞(与第k2个粒子相撞),处理方法LZ自己解决;否则半径r内的所有点的值全部 设为值k。
end
……
[/Quote]
这个不如划分网格效率高,但是划分网格我还没有解决粒子大小不一问题
mngzilin
2010-07-25
打赏
举报
回复
[Quote=引用 13 楼 ljia0 的回复:]
可以换个思路,不要取中心点,可以检测边界点,当某点属于两粒子以上就说明他碰撞(前提是粒子碰撞不变形)。
[/Quote]
主要是检测“某点属于两粒子”需要遍历其5000个点
ljia0
2010-07-24
打赏
举报
回复
可以换个思路,不要取中心点,可以检测边界点,当某点属于两粒子以上就说明他碰撞(前提是粒子碰撞不变形)。
mngzilin
2010-07-24
打赏
举报
回复
哎,要是能在不降低精度前提下,减少运算次数最好了。否则每一帧都要检测
5000x5000
次,这太庞大了。
Arucart
2010-07-24
打赏
举报
回复
6楼的意思是说整个平面分成一个个微元
然后每个球也相对于圆心表示成一系列微元的集合
然后每一帧对每一个球检查是否有微元被重复覆盖..
是个O(n)的算法,不过这个占用空间也太大了吧.....
mngzilin
2010-07-23
打赏
举报
回复
[Quote=引用 11 楼 zmshy2128 的回复:]
已经很优化了,建议好好读我的那段文字
for (k = 1:5000) //循环每个粒子
进行更新粒子k的坐标x、y
在大数组中,以坐标(x,y)为中心,检测半径r内的所有点的值,如果存在点的值不为0(假设有值为k2的点),则该点与其他点相撞(与第k2个粒子相撞),处理方法LZ自己解决;否则半径r内的所有点的值全部 设为值k。
end
而且可以解决不同尺寸粒子的问题
[/Quote]
你的办法我再缕一缕,测试下
zmshy2128
2010-07-23
打赏
举报
回复
已经很优化了,建议好好读我的那段文字
for (k = 1:5000) //循环每个粒子
进行更新粒子k的坐标x、y
在大数组中,以坐标(x,y)为中心,检测半径r内的所有点的值,如果存在点的值不为0(假设有值为k2的点),则该点与其他点相撞(与第k2个粒子相撞),处理方法LZ自己解决;否则半径r内的所有点的值全部 设为值k。
end
而且可以解决不同尺寸粒子的问题
mngzilin
2010-07-23
打赏
举报
回复
回复6楼:
这个算法仍然有问题,当你判断半径为r的圆形区域有无粒子时候要遍历5000个点才能知道。这样同样复杂。耗时。
和划分网格也不一样
mngzilin
2010-07-23
打赏
举报
回复
[Quote=引用 6 楼 zmshy2128 的回复:]
分给我吧,我知道怎么做
思想
1、将水平平面 数字化,用一个大数组表示(每个点的精度自己去估计)。
每个圆形粒子的面积也数字化表示,每个固定时刻在 大数组中 只占用一定数目的点(圆形分布)。
2、定义表示粒子的类,需要中心坐标 x、y、和半径r表示,不同的半径r,对应不同的圆形分布点数(这是个固定值,预先求好)。定义5000个粒子变量,并初始化
3、设置定时器,在每个周期内,需要……
[/Quote]
谢谢这位朋友,
你的方法类似于划分网格,也就是我所提到的算法四。这样次数确实少了很多。但是5000个点的位置的标记过程可否优化?期待.....
winton_adlsy
2010-07-23
打赏
举报
回复
mark
GResume
2010-07-23
打赏
举报
回复
楼上的我怎么没看懂 悲剧
zmshy2128
2010-07-23
打赏
举报
回复
分给我吧,我知道怎么做
思想
1、将水平平面 数字化,用一个大数组表示(每个点的精度自己去估计)。
每个圆形粒子的面积也数字化表示,每个固定时刻在 大数组中 只占用一定数目的点(圆形分布)。
2、定义表示粒子的类,需要中心坐标 x、y、和半径r表示,不同的半径r,对应不同的圆形分布点数(这是个固定值,预先求好)。定义5000个粒子变量,并初始化
3、设置定时器,在每个周期内,需要定义一个大数组(表示整个水平平面),并全部初始化为0
for (k = 1:5000) //循环每个粒子
进行更新粒子k的坐标x、y
在大数组中,以坐标(x,y)为中心,检测半径r内的所有点的值,如果存在点的值不为0(假设有值为k2的点),则该点与其他点相撞(与第k2个粒子相撞),处理方法LZ自己解决;否则半径r内的所有点的值全部 设为值k。
end
注意,该方法不是两两检测粒子间的距离,典型的以空间换时间的技巧 O(∩_∩)O
mngzilin
2010-07-23
打赏
举报
回复
满三天结贴
renjianxin520
2010-07-23
打赏
举报
回复
mark
ayw215
2010-07-23
打赏
举报
回复
围观。。
mngzilin
2010-07-23
打赏
举报
回复
期待
healer_kx
2010-07-23
打赏
举报
回复
mark~~~
Canvas动画实战:如何用JavaScript模拟逼真烟花效果(2024最新版)
本文详细介绍了如何使用JavaScript和Canvas技术模拟逼真烟花效果,涵盖
粒子
系统设计、物理模拟、视觉渲染及性能优化等核心内容。通过2024年最新前端技术,开发者可以创建高性能的烟花动画,适用于网页特效、游戏开发等场景,提升用户体验。
Unity 2022.3 管道流动效果:4种主流方案性能与适用场景横向评测
本文深入评测了Unity 2022.3中实现管道流动效果的4种主流方案:UV动画、iTween路径、Trail Renderer和Obi Fluid,从性能、视觉效果和适用场景进行全面对比。针对不同项目需求提供选型建议,特别分析了移动端优化技巧,帮助开发者在性能与效果间取得平衡。
游戏大厂FPS射击游戏性能优化核心策略——大白话全流程
优化永远不是一劳永逸,持续跟进新硬件新平台。不断提升工具和流程标准化,减少人工摸索。资源管理、对象池、网络同步、特效分级、真机监控,这些核心步骤大厂一定都有方案。FPS射击类游戏优化,绝对是技术团队的修炼场。用好这些大厂经验,不仅能让你游戏不卡、玩家不掉帧、运营省心,还能锻炼你技术和管理全链条素养。性能优化路上,最重要的就是“定位、分步、协作”,坚持持续优化和全流程管控。祝各位研发兄弟们,把FPS做得又快又稳,玩家体验持续Best!
【信息科学与工程学】【制造工程】第三十六篇 机械工程与自动化101
本系统通过多模型集成、知识增强、主动学习和持续优化等关键技术,实现了高效、高质量的自动化文本语料标注。系统采用模块化设计,支持灵活扩展,能够处理不同类型的文本数据,适应多样的标注需求。
双三相交错LLC谐振变换器软启动与恒压恒流双闭环控制研究(Simulink仿真实现)
双三相交错LLC谐振变换器软启动与恒压恒流双闭环控制研究(Simulink仿真实现)内容概要:本文围绕双三相交错LLC谐振变换器的软启动与恒压恒流双闭环控制展开研究,重点探讨其在Simulink环境下的仿真实现。研究内容涵盖变换器的主电路建模、软启动策略设计、恒压与恒流双闭环控制器的构建与参数整定,以及系统在不同负载和输入条件下的动态响应特性分析。通过仿真验证了所提控制策略的有效性与鲁棒性,能够实现平稳启动、精确稳压稳流及良好的抗扰性能。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、研究人员及从事电源系统开发的工程技术人员,需具备一定的电路理论、自动控制原理和Simulink仿真基础。; 使用场景及目标:① 掌握LLC谐振变换器的工作原理与建模方法;② 学习并实现恒压恒流双闭环控制策略;③ 理解软启动技术对提升系统可靠性的关键作用;④ 通过仿真平台完成控制系统的设计、调试与性能评估。; 阅读建议:建议读者结合Simulink仿真软件,逐步复现文中模型与控制逻辑,重点关注控制器参数设计与系统动态性能之间的关系,并尝试改变工况条件以深入理解系统的鲁棒性与适应性。
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章