模拟重力和碰撞 C#
2016-08-23
0 0 0
4.0 分
其他
如何获取积分?
翻译 maninwest@Codeforge 作者:Suhib N. Rawshdeh@CodeProject
模拟物体在重力和碰撞环境中的运动,需要对计时器和线程管理有良好的理解。
在这里,将展示如何使用计时器和基本运动和碰撞方程模拟物体的运动。我们将使用 3 个球和重力环境构建模型。你将会看到这些球如何相互碰撞。你甚至可以通过更新运动变量控制球的运动。
球在重力和碰撞系统中运动,球的位置会每20ms 使用计时器更新一次,计时器也会截取位置的快照。
背景
首先了解重力和碰撞方程。
原理分析:
重力和碰撞方程:
位置方程:
X = Xi + Vx * tx
Xi: 物体的初始位置
Vx: 忽略摩擦力和空气阻力,则是个常数速度。我在模拟中假设空气是固定阻力,必须定期处理,所以我将运动分为两个期间并计算每个期间的新位置
tx: 时间.
运动方程:
Y = Y0 + Vy * ty – 0.5 * g * t^2
g: 重力加速度
方程的速率:
Vy = Vy0 – g*t
Vy: 最终的Y 速度.
Vy0: 初始Y 速度.
g: 重力加速度.
Vx = 0.99*Vx0
Vx0:旧的 X 速度
Vx: 加上空气阻力后的新的 X 速度
0.99: 表示空气阻力的
模拟物体在重力和碰撞环境中的运动,需要对计时器和线程管理有良好的理解。
在这里,将展示如何使用计时器和基本运动和碰撞方程模拟物体的运动。我们将使用 3 个球和重力环境构建模型。你将会看到这些球如何相互碰撞。你甚至可以通过更新运动变量控制球的运动。
球在重力和碰撞系统中运动,球的位置会每20ms 使用计时器更新一次,计时器也会截取位置的快照。
背景
首先了解重力和碰撞方程。
原理分析:
重力和碰撞方程:
位置方程:
X = Xi + Vx * tx
Xi: 物体的初始位置
Vx: 忽略摩擦力和空气阻力,则是个常数速度。我在模拟中假设空气是固定阻力,必须定期处理,所以我将运动分为两个期间并计算每个期间的新位置
tx: 时间.
运动方程:
Y = Y0 + Vy * ty – 0.5 * g * t^2
g: 重力加速度
方程的速率:
Vy = Vy0 – g*t
Vy: 最终的Y 速度.
Vy0: 初始Y 速度.
g: 重力加速度.
Vx = 0.99*Vx0
Vx0:旧的 X 速度
Vx: 加上空气阻力后的新的 X 速度
0.99: 表示空气阻力的
c#
模拟
重力
碰撞
相关源码推荐
第186号:DX0110-小区物业管理系统源码
0
0
暂无评分
第219号:DX0149-小区物业管理系统源码
0
0
暂无评分
验证码识别
0
0
暂无评分
CSV数据分析工具
0
0
暂无评分
医院病历信息管理系统源码
0
0
暂无评分
暂无评论