当前位置: 首页 > news >正文

【C++游戏引擎开发】第29篇:物理引擎(Bullet)—刚体动力学系统

一、刚体运动学数学描述

1.1 三维空间位姿表示

刚体在三维空间中的运动由平动转动复合而成。定义:

  • 质心位置 x ( t ) ∈ R 3 \mathbf{x}(t) \in \mathbb{R}^3 x(t)R3
  • 方向四元数 q ( t ) = [ w , x , y , z ] ∈ H \mathbf{q}(t) = [w, x, y, z] \in \mathbb{H} q(t)=[w,x,y,z]H

四元数满足约束条件:
w 2 + x 2 + y 2 + z 2 = 1 w^2 + x^2 + y^2 + z^2 = 1 w2+x2+y2+z2=1
其优势体现在:

  1. 避免欧拉角的万向节锁问题
  2. 相比旋转矩阵更紧凑(4个参数 vs 9个参数)

1.2 速度场分解

刚体速度场可分解为:

  • 线速度 v = d x d t \mathbf{v} = \frac{d\mathbf{x}}{dt} v=dtdx
  • 角速度 ω = 2 d q d t q ∗ \boldsymbol{\omega} = 2\frac{d\mathbf{q}}{dt}\mathbf{q}^* ω=2dtdqq

其中四元数导数与角速度的关系为:
d q d t = 1 2 ω q ⊗ q \frac{d\mathbf{q}}{dt} = \frac{1}{2}\boldsymbol{\omega}_q \otimes \mathbf{q} dtdq=21ωqq
ω q \boldsymbol{\omega}_q ωq为角速度的纯四元数形式: [ 0 , ω x , ω y , ω z ] [0, \omega_x, \omega_y, \omega_z] [0,ωx,ωy,ωz]


二、刚体动力学方程

2.1 牛顿-欧拉方程体系

2.1.1 平动动力学

由牛顿第二定律可得:
F = d ( m v ) d t = m v ˙ + ω × ( m v ) \mathbf{F} = \frac{d(m\mathbf{v})}{dt} = m\dot{\mathbf{v}} + \boldsymbol{\omega} \times (m\mathbf{v}) F=dtd(mv)=mv˙+ω×(mv)
其中质量 m m m在刚体运动中保持恒定

2.1.2 转动动力学

在局部坐标系下,欧拉方程为:
τ = I ω ˙ + ω × ( I ω ) \boldsymbol{\tau} = \mathbf{I}\dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times (\mathbf{I}\boldsymbol{\omega}) τ=Iω˙+ω×(Iω)
惯性张量 I \mathbf{I} I的坐标系转换关系:
I w o r l d = R I l o c a l R T \mathbf{I}_{world} = \mathbf{R}\mathbf{I}_{local}\mathbf{R}^T Iworld=RIlocalRT
R \mathbf{R} R为当前朝向的旋转矩阵

2.2 惯性张量计算

对于均匀密度的立方体(边长 a , b , c a,b,c a,b,c):
I = m 12 [ b 2 + c 2 0 0 0 a 2 + c 2 0 0 0 a 2 + b 2 ] \mathbf{I} = \frac{m}{12}\begin{bmatrix} b^2+c^2 & 0 & 0 \\ 0 & a^2+c^2 & 0 \\ 0 & 0 & a^2+b^2 \end{bmatrix} I=12m b2+c200

相关文章:

  • C++:Lambda表达式
  • MS2111多点低压差分(M-LVDS)线路驱动器和接收器
  • __proto__与prototype
  • NFS-网络文件系统
  • 域名与DNS理解
  • 基于Springboot + vue实现的列书单读书平台
  • OVP UVP与UVLO对比
  • 【办公类-89-03】20250429AI写的研讨记录,清除格式,统一格式,名字替换。部分加粗,添加页眉
  • Leetcode 3528. Unit Conversion I
  • MySQL 索引与事务详解
  • 在线文章系统自动化测试报告
  • 工业声纹采集设备的市场需求趋势简析
  • Qwen3 开源!深度对比 DeepSeek,一文选对模型
  • 巧记英语四级单词 Unit6-下【晓艳老师版】
  • 首发记忆行车方案与座舱智能管家,佑驾创新“抢跑”驾舱融合市场
  • GTC Taipei 2025 医疗域前瞻:从AI代理到医疗生态,解码医疗健康与生命科学的未来图景
  • CKA和CKS认证的介绍、学习、备考指南
  • 制作一款打飞机游戏30:动画系统
  • 业务层在事务中高频创建动态表然后删除或者回滚导致 pg_dump 概率出现备份失败问题分析
  • Python入门:流程控制练习
  • 厚重与潮流交织,淮安展现“运河之都”全新城市想象
  • 朝鲜新型驱逐舰“崔贤”号进行多项武器试验
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记
  • 交通运输部:预计今年五一假期全社会跨区域人员流动量将再创新高
  • 发出“美利坚名存实亡”呼号的卡尼,将带领加拿大走向何方?
  • “85后”潘欢欢已任河南中豫融资担保有限公司总经理