三角学和游戏开发

时间:2010-10-15 23:37:35

标签: 3d trigonometry

我理解sincos(以及其他一些三角函数)的含义,但我并没有真正得到他们解决的问题。当你在游戏开发中使用其中一些功能(特别是3D游戏开发)时,你能告诉我一些真实世界的例子吗?

感谢。

8 个答案:

答案 0 :(得分:11)

在游戏开发中,有很多情况需要使用三角函数。编程游戏时,你经常需要做一些事情,比如找到两点之间的距离或者让一个物体移动。以下是一些例子:

  • 旋转宇宙飞船或其他车辆

  • 妥善处理从旋转武器射出的射弹轨迹

  • 在台球或头等两个物体碰撞后计算新轨迹

  • 确定两个物体之间是否发生碰撞

  • 找到轨迹的角度(给定物体在x方向和y方向的速度)

这是different areas of Math required in various types of video game development的良好链接。

请查看以下链接以进一步阅读:

答案 1 :(得分:7)

三角学最明显的用法是让物体在任何给定的方向上移动,没有三角学,这是不可能的。

//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);

它也可用于其他事物,例如:

  • 在2d精灵上执行转换以创建旋转。
  • 在投影三维视图时使用非常广泛。
  • 由于正弦波的形状,它可用于在2个值之间创建平滑过渡。
  • 为音频合成创建正弦波。
  • 绘制圆形和球体等圆形物体。
  • 确定枢轴臂上的一个点的位置。

答案 2 :(得分:5)

3D模型由顶点(三维空间中坐标对或三元组的数字列表)和连接它们的线条定义。这些线条可以渲染,点亮,纹理等表面。

为了旋转对象,您必须能够操纵这些顶点。如果你想要旋转一个物体的度数或弧度,你就可以使用三角函数来找出它结束的位置。

基本触发是游戏,模拟等所需的任何3D操作的基础。如果这些功能,它们的局限性以及它们如何应用于和放大几何的有用性,那么值得花时间研究并熟悉真正的意义,信号处理等。

这是一个很好的问题;大多数人只是点头,表现得很明显。除非你的名字是Blaise或Renee,否则它可能不是。

答案 3 :(得分:4)

一个示例触发函数用于旋转矩阵

例如

此矩阵用于围绕原点旋转x,y平面中的点。

|x'| = | cos a    -sin a | | x |
|y'|   | sin a     cos a | | y |
  • x,y原点
  • x',y'翻译点
  • 逆时针旋转的角度

答案 4 :(得分:3)

2D或3D空间中的游戏需要图形几何体。用于建模运动的物理引擎忠实地需要几何。 Trig是几何的基础。

采取像弹跳一样简单的事情。弹丸撞击墙壁和弹回的物理特性将很快使你相信触发功能的实用性。

答案 5 :(得分:3)

三角函数对于产生几乎所有曲线(如椭圆或圆圈)至关重要,因此在游戏开发中有很多用途。此外,正弦波对于perlin噪声和许多其他特殊效果非常有用。

答案 6 :(得分:3)

编写一个绘制和更新模拟时钟的程序。

这样做时遇到的问题应该能够解答您的问题。如果你对sin和cos有基本的了解,你应该能够使用它们来简化时钟绘制。

如果那不能给你答案,那就试着画出没有罪和cos的东西。

答案 7 :(得分:1)

嗯,一个瞬间浮现在我身上的应用程序,就是游戏中的特殊效果......说你有武器或咒语或能力,或者各种各样的效果,它会产生一束光......你可以玩数学来“塑造那个光束”......

同样地说,你有一个门户,你希望在激活或进入时播放一些整洁的动画,你可以玩矢量和旋转矩阵,你可以通过混合数学和想象力做很多惊人的事情...