这是我的头,有人可以更好地向我解释吗?http://mathworld.wolfram.com/Reflection.html
我正在制作一款 2d 突围格斗游戏,所以我需要球在击中墙壁、桨或敌人(或敌人击中它)时能够反射。
他们所有的公式都是这样的:x_1^'-x_0=v-2(v·n^^)n^^。
我不能这样。('是什么意思或x_0?或^^?)
这是我的头,有人可以更好地向我解释吗?http://mathworld.wolfram.com/Reflection.html
我正在制作一款 2d 突围格斗游戏,所以我需要球在击中墙壁、桨或敌人(或敌人击中它)时能够反射。
他们所有的公式都是这样的:x_1^'-x_0=v-2(v·n^^)n^^。
我不能这样。('是什么意思或x_0?或^^?)
如果考虑“点积”运算的几何意义,反射公式更容易理解。
两个 3d 向量之间的点积在数学上定义为
<a, b> = ax*bx + ay*by + az*bz
但它有一个很好的几何解释
如果两个向量指向相反的方向,则a和b之间的点积是a在b上的投影的长度(如果两个向量指向相反的方向)乘以b的长度。
使用此定义立即显而易见并且仅查看公式并不明显的是,例如,如果坐标系旋转,两个向量的点积不会改变,两个垂直向量的点积是0(在这种情况下,投影的长度显然为零)或者向量本身的点积是其长度的平方。
使用几何解释不太明显的是点积是可交换的,即<a, b> = <b, a>
(考虑到公式很清楚的事实)。
需要考虑的重要一点是,如果b的长度为 1,那么点积<a, b>
就是a在b上的投影长度(使用正确的符号)。
鉴于这种解释,计算平面反射的公式很容易理解:
要计算反射向量r,给定一个向量a和一个具有法线n的平面,您只需要使用以下公式:
r = a - 2<a, n> n
在这种情况下,图中的高度h<a, n>
只是(请注意,假定n是单位长度),因此应该清楚的是,您需要在法线方向上移动该高度的两倍。
如果您考虑正确的点积符号,您应该看到该公式也适用于当入射矢量a和平面法线n面向同一方向时。
撇号( '
) 表示数字/点/结构的第二种形式。在这种情况下,x1' 指的是 x1 的反射形式。
下标( 0
) 表示相同的各种状态。在这种情况下,x₀ 是反射点。
插入符号( )^
表明某事物是一个向量。在这种情况下,n̂ 是法线向量。
这只是关于方程式格式吗?因为我看到格式很好的方程式,而不是您的问题中出现的 LaTeX 样式标记。所以第 1 步:尝试在不同的网络浏览器中查看页面,看看它是否看起来更清晰。
更实质的是,我会推荐一种不同的资源。从根本上说,您正在查看碰撞,在物理文本中通常比在数学文本中更好地处理它们。任何入门物理教科书都会有关于碰撞的章节,这应该直接适用于您的游戏。