反思?我该怎么做?
这是在我的头上,有人能解释给我更好吗? 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
,但它有一个很好的几何解释
一个和b之间的点积是长度 的投影a超过b以拍摄如果两个向量指向 的相反方向,则为负号,再乘以b的长度。
的东西,是用这个定义显而易见的,如果你只是看公式这不是明显的是,例如,如果坐标系是两个向量的点积不改变旋转,两个垂直矢量的点积是0(在这种情况下投影的长度明显为零),或者矢量本身的点积是其长度的平方。
使用几何解释反而不太明显的一点是点积是可交换的,即<a, b> = <b, a>
(事实上,考虑到公式)是明确的。
的重要一点考虑也是如果b长度为1,则点积<a, b>
是一个简单的一个超过b(与适当的符号采取)的突出的长度。
鉴于这种解释的公式用于在平面计算反射是很容易理解:
为了计算反射矢量ř,给定一个向量一个和平面正常ñ你只需要使用的公式:
r = a - 2<a, n> n
的高度h在这个图中是<a, n>
(注意,n被假定为单位长度),所以应该清楚你需要在正常方向上移动两倍的高度。
如果您认为合适的点积的迹象,你应该看到的是,公式也适用的事件时有矢量一个,飞机正常ň都面临着相同的方向。
的素('
)表示数/点/结构的第二形式。在这种情况下,x 1'是指x 1的反射形式。
的标(0
)示出了相同的各种状态。在这种情况下,x 0是反射点。
插入符号(^
)显示某物是矢量。在这种情况下,n是法向量。
数字/点/结构的第二种形式? – CyanPrime 2011-03-28 04:38:31
是的,第二种形式。双重素数('')是第三种形式,三重素数(''')是第四种,依此类推。 – 2011-03-28 04:39:40
这是关于方程格式?因为我看到格式良好的方程式,而不是出现在你的问题中的LaTeX风格的标记。所以第1步:尝试在不同的Web浏览器中查看页面,看看它是否看起来更清晰。
更实质性地,我会推荐一种不同类型的资源。从根本上说,你在看collisions,这通常比物理文本更好地处理物理文本。任何入门物理教科书都会有一章关于碰撞的内容,应该直接适用于您的游戏。
您遇到链接问题。 – 2011-03-28 04:25:08
已修复。谢谢^ _^ – CyanPrime 2011-03-28 04:30:15
如果你没有强大的数学基础,这是你尝试构建自己的游戏平台时遇到的很多很多问题中的第一个。我建议阅读一些关于三角和几何以及一般数学原理的教科书。 – 2011-03-28 04:37:55