如果你家的娃喜欢打游戏,可以把这篇文章分享给他看看。本期主题是在游戏中如何使物体移动?
我们玩游戏的时候控制一个角色向前或者向任意方向移动,程序都是如何实现的呢 ?
故事的开始要从一个余弦波开始,现在我们将角色移动的正前方定义为Y朝向(当然你可以将任意轴向定义为“前方” ),那么就用一个Cos(θ) 表示。
如果现在我们要制作一个3D游戏,可以将正前方放在Z轴上,也可以写作z = cos(θ)
在平面直角坐标系中,当点 P 的坐标由 x = sin(θ) 和 y = cos(θ) 确定时,我们可以证明这些点实际上都位于一个单位圆上。
三角函数的定义:
- sin(θ) 和 cos(θ) 分别表示在直角三角形中,对边与斜边、邻边与斜边的比值。但在这里,我们将其推广到任意角 θ。
单位圆:
- 考虑单位圆(半径为1的圆)上的任意一点 P,其与原点 O 连线与 x 轴正方向的夹角为 θ。
- 根据三角函数的几何定义,点 P 的 x 坐标即为 sin(θ)(OP 在 x 轴上的投影长度),y 坐标即为 cos(θ)(OP 在 y 轴上的投影长度)。
单位圆方程:
- 由于 OP 是单位圆的半径,其长度为1,因此 sin2(θ) + cos2(θ) = 1。
- 这正是单位圆上点的坐标满足的方程。
- 结合上述解释,当 x = sin(θ) 且 y = cos(θ) 时,点 P(x, y) 必然位于单位圆 x2 + y2 = 1 上。
当 y = cos(θ),x = sin(θ) 时,可以画出一个单位圆,因为这样的点集正好构成了单位圆上的所有点。