Skip to content

Latest commit

 

History

History
100 lines (88 loc) · 3.26 KB

README_zh_CN.md

File metadata and controls

100 lines (88 loc) · 3.26 KB

Physics2D

一个简单、用于博客教学的 2D 游戏物理引擎。 知乎专栏:ACRL's Development

请注意: 如果要尝试效果,请前往 Physics2D-TestBed-SFML

快速构建

使用 XMake 进行项目构建:

xmake build

编译环境

  • C++ 20

功能特点

  • 基本的线性代数类
  • 2D 图元的碰撞检测
    • 精检测阶段(Narrowphase)
      • 检测算法
        • 分离轴算法
        • GJK 算法
        • 多边形扩展算法
        • 闵可夫斯基入口简化
        • Sutherland Hodgman 多边形裁剪
      • 连续碰撞检测
        • 轨迹采样
        • 冲击时间
    • 粗检测阶段
      • 轴对齐包围盒
      • 动态层次包围体树
        • 表面积启发法
        • 光线物体查询
        • 动态树与数组
      • 扫掠减除法
      • 均匀网格法
  • 碰撞点维护
  • 刚体模拟
  • 连续冲力解算器
  • 约束关节
    • 鼠标约束
    • 旋转/朝向约束
    • 点约束
    • 距离约束
  • 测试 Demo
  • 基本 Debug 绘图
  • 2D 平滑相机
    • 缩放
    • 平滑移动
    • 跟踪物体
  • 基本 2D 计算几何算法
    • 基本图元映射
    • 相交测试
    • 凸体检测
    • 三角形三心计算
    • 外/内接圆
    • 椭圆最近点查询

计划清单

  • 积分器
    • 韦尔莱
    • 四阶龙格库塔法
  • 关节约束
    • 结合约束
  • 软体模拟
    • 有限元方法
    • 质点弹簧系统
  • 绳子模拟
    • 基于位置的动力学

参考