12 2023 档案

摘要:Box_A的旋转角度为a 旋转矩阵为: a) 用于做localToWorld的变换,这个矩阵的col1, col2分别表示模型空间的x轴、y轴坐标(世界坐标) b) 求点在世界坐标轴上的投影(世界坐标) c) abs(RotA) * rightTopPoint_Local,求Box_A相对世界坐标轴 阅读全文
posted @ 2023-12-29 21:45 yanghui01 阅读(45) 评论(0) 推荐(0)
摘要:这个是在Box2d-Lite代码中看到的用法,用分离轴算法(SAT)求两个Box的碰撞信息那边用到了。 Collide.cpp int Collide(Contact* contacts, Body* bodyA, Body* bodyB) { // Setup Vec2 hA = 0.5f * b 阅读全文
posted @ 2023-12-29 00:13 yanghui01 阅读(95) 评论(0) 推荐(0)
摘要:角运动(Angular Motion)或叫转动(Rotational Motion) 相关公式 1) 瞬时角速度(angular velocity):ω = Δ弧度 / Δt,单位:弧度/秒,方向:逆时针旋转,沿转轴向上;顺时针旋转,沿转轴向下; 2) 角加速度:a = (ω1-ω0) / t,单位 阅读全文
posted @ 2023-12-28 22:00 yanghui01 阅读(1702) 评论(0) 推荐(0)
摘要:效果 1) 因为这边只用到圆,所以直接拿掉了Shape类,将半径放到了刚体类上,碰撞检测就直接用刚体位置+半径来判断就可以。 2) 碰撞的开始到结束,用CollisionPair来记录相关状态及信息。 3) 没有涉及到角运动,所有涉及的公式都是线性运动物理公式。 public class MyRig 阅读全文
posted @ 2023-12-27 00:40 yanghui01 阅读(98) 评论(0) 推荐(0)
摘要:碰撞情况分析 球1向上运动,球2向下运动 1) 如果它们速度不快,碰撞的瞬间,碰撞点可能就在球的边缘上(红色点为碰撞点,绿色箭头为碰撞法向量) 2) 如果它们速度很快,碰撞的瞬间,两球可能就发生重叠(穿插),碰撞点就到球的里面去了 在物理引擎中,需要用到的碰撞信息包括: 1) 碰撞点。主要用于旋转运 阅读全文
posted @ 2023-12-24 23:19 yanghui01 阅读(179) 评论(0) 推荐(0)
摘要:线性运动(Linear Motion)或平动(Translational Motion) 相关公式 加速度(acceleration): a = (v1-v0) / t = Δv / t,单位:m/s2,方向:力作用方向或速度变化方向 瞬时速度(velocity):v1 = v0 + a * t = 阅读全文
posted @ 2023-12-23 00:29 yanghui01 阅读(389) 评论(0) 推荐(0)
摘要:点到线段的最近距离 判断依据 1) 投影结果<0,则线段端点a离p最近 2) 投影结果>线段ab的长度,则线段端点b离p最近 3) 否则p在线段上的垂点为最近点 p与ab不共线时 1) p在线段两侧 2-a) p在线段内侧 2-b) p在线段内侧2 p与ab共线时 1) p在线段两侧 2-a) p在 阅读全文
posted @ 2023-12-21 23:31 yanghui01 阅读(271) 评论(0) 推荐(0)
摘要:1) 先要安装插件CMake Tools 2) 没配置CMakeLists.txt前的项目文件,直接用之前配置的Build Task构建,会报main.cpp找不到头文件,因为它在./include/Test.h下,在main.cpp所在的文件夹搜肯定是没有的 3) 下面开始配置CMakeLists 阅读全文
posted @ 2023-12-21 00:14 yanghui01 阅读(2894) 评论(0) 推荐(0)
摘要:安装MinGW cpp环境搭建 - MinGW和cmake安装 安装c++开发相关的插件 构建(Build)配置 在c/cpp文件的页签 -> ctrl + shift + p -> 输入task -> 选择Configure Default Build Task 然后选择g++ 会在task.js 阅读全文
posted @ 2023-12-20 01:16 yanghui01 阅读(916) 评论(0) 推荐(0)
摘要:box2dlite地址:GitHub - erincatto/box2d-lite: A small 2D physics engine vs2017不支持utf-8 without bom问题 box2d lite的源码文件是utf-8 without bom的,如果在里面写了中文注释,就会出现编 阅读全文
posted @ 2023-12-19 23:10 yanghui01 阅读(121) 评论(0) 推荐(0)
摘要:MinGW MinGW主要用于在Windows上使用gnu下的相关编译工具进行跨平台开发,比如:gcc。 MinGW已经停止更新很长时间了,它只支持编译32位程序,且提供的功能也很少。 MinGW-w64 MinGW-w64是MinGW的一个分支,它在MinGW的基础上,增加了编译64位程序的支持, 阅读全文
posted @ 2023-12-17 22:55 yanghui01 阅读(854) 评论(0) 推荐(0)
摘要:CLion是JetBrains旗下的一款cpp开发工具,用过IDEA的就知道JetBrains旗下的开发工具好用又强大。 这边使用了CLion的2021.2.2版本,为啥用这么老的版本?因为这个版本还能用ide-eval-resetter插件 下载地址:Other Versions - CLion 阅读全文
posted @ 2023-12-17 22:55 yanghui01 阅读(2474) 评论(0) 推荐(0)
摘要:slab指的就是一组平行线之间的距离 AABB的width为平行于y轴的两条边之间的距离,叫x-slab;height为平行于x轴的两条边之间的距离,y-slab; x-slab和y-slab重叠的部分,就是矩形框; 判断依据 如果射线和AABB相交,则射线与x-slab相交部分和y-slab相交部 阅读全文
posted @ 2023-12-04 00:17 yanghui01 阅读(1187) 评论(0) 推荐(0)
摘要:行列式:就是计算方阵矩阵的值 2阶行列式的计算规则 元素的余子式 就是去掉元素所在的行和列后,剩下的行列式,记做Mij 3阶行列式的元素的余子式是2阶行列式,会降低1阶 元素的代数余子式 元素的余子式带上正负符号就是代数余子式了;符号的正负=(-1)(i+j),比如:行1列1元素的符号为正,行1列2 阅读全文
posted @ 2023-12-01 22:41 yanghui01 阅读(590) 评论(0) 推荐(0)
摘要:例1:求二元一次方程组 把方程写成矩阵的形式:第1个矩阵为系数矩阵(方阵), 第2个矩阵为变量矩阵 根据克拉默法则,xi=Di/D, Di表示第i列被最后那个列向量替换后的行列式,D为系数矩阵行列式 例2:三元一次方程组 把方程写成矩阵形式: 1) 根据克拉默法则,x, y, z的解为 2) 3阶行 阅读全文
posted @ 2023-12-01 22:21 yanghui01 阅读(1146) 评论(0) 推荐(0)