我了解sin
和cos
(以及其他一些三角函数)的含义,但是我并没有真正了解它们要解决的问题是什么。当您在游戏开发(特别是3D游戏开发)中使用其中某些功能时,能否向我展示一些真实的示例?
谢谢。
在游戏开发中,在许多情况下需要使用三角函数。在编写游戏程序时,通常需要执行诸如查找两点之间的距离或使物体移动的操作。以下是一些示例:
旋转宇宙飞船或其他交通工具
正确处理从旋转武器射出的弹丸的轨迹
在两个物体(例如撞球或头部)之间碰撞后计算新的轨迹
确定两个对象之间是否发生碰撞
找到轨迹角(给定物体在x方向和y方向上的速度)
这里是different areas of Math required in various types of video game development的很好链接。
检查这些链接以进一步阅读:
三角学最明显的用途是使对象沿任何给定方向移动,如果没有三角学,这是不可能的。
//Example code, will move the object speed units in the given direction (degrees)
d2r = pi / 180; //Conversion from degrees to radians
this.x += speed * cos (direction * d2r);
this.y += speed *-sin (direction * d2r);
也用于其他用途,例如:
3D模型由顶点(3D空间中坐标对或三元组的数字列表)和连接它们的线定义。这些线使表面可以渲染,照亮,纹理化等。
例如,要旋转对象,您必须能够操纵这些顶点。如果要旋转某个对象一定角度或弧度,则必须使用Trig函数来确定对象的缠绕位置。
基本触发是游戏,模拟等所需的任何3D操纵的基础。值得您花时间研究并熟悉这些功能的真正含义,其局限性以及它们如何应用于和放大几何图形,信号的有用性。处理等
这是一个很好的问题;大多数人只是点头并表现得很明显。除非您的名字叫Blaise或Renee,否则可能不是。
旋转矩阵中使用的一个示例触发函数
例如
此矩阵用于绕原点旋转x,y平面中的点。
|x'| = | cos a -sin a | | x |
|y'| | sin a cos a | | y |
2D或3D空间中的游戏需要图形的几何图形。用于真实建模运动的物理引擎需要几何体。 Trig是几何的基础。
[弹跳一样简单。弹丸撞击和弹跳并反弹的物理原理将迅速使您相信触发功能的实用性。
三角学对于产生几乎所有曲线(如椭圆或圆形)至关重要,因此在游戏开发中具有大量用途。另外,正弦波对于Perlin噪声和许多其他特殊效果很有用。
编写一个绘制和更新模拟时钟的程序。
您在这样做时遇到的问题应能为您提供答案。如果您对sin和cos有基本的了解,则应该可以使用它们使钟表绘制变得非常容易。
如果没有给出您的答案,请尝试画出没有罪恶和诱因的东西。
嗯,一个立即想到的应用程序,是在游戏中具有特殊效果的。例如,您拥有武器,咒语或异能,或者具有某种效果,可以发出一束光……您可以玩弄数学以“塑造光束” ...
[以同样的方式,假设您有一个门户,希望在激活或进入时播放一些精美的动画,可以玩矢量和旋转矩阵,并且可以结合数学和想象力来做很多令人惊奇的事情。 ..