代码之家  ›  专栏  ›  技术社区  ›  Alon Gubkin

三角学与游戏开发[关闭]

  •  8
  • Alon Gubkin  · 技术社区  · 14 年前

    我明白什么 sin cos (和其他一些三角函数)的意思是,但我不知道它们能解决什么样的问题。当你在游戏开发(特别是3D游戏开发)中使用这些功能时,你能给我展示一些现实世界的例子吗?

    谢谢。

    8 回复  |  直到 12 年前
        1
  •  11
  •   Community CDub    8 年前

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

    • 旋转宇宙飞船或其他飞行器

    • 正确处理旋转武器射弹的弹道

    • 计算两个物体(如台球或球头)碰撞后的新轨迹

    • 确定两个对象之间是否发生碰撞

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

    这里有一个很好的链接 different areas of Math required in various types of video game development .

    请检查这些链接以进一步阅读:

        2
  •  7
  •   Randy the Dev    14 年前

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

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

    它还用于其他用途,例如:

    • 对二维精灵执行转换以创建旋转。
    • 在投影三维视图时使用非常广泛。
    • 由于正弦波的形状,它可以用来创建两个值之间的平滑过渡。
    • 为音频合成创建正弦波。
    • 绘制圆形对象,如圆和球体。
    • 确定位于枢轴臂上的点的位置。
        3
  •  5
  •   3Dave    14 年前

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

    例如,为了旋转一个对象,你必须能够操作那些顶点。如果你想旋转一个物体一定的度数或弧度,你可以用三角函数来计算它的归宿。

    基本三角是游戏、模拟等所需的任何3D操作的基础。如果这些功能、它们的局限性,以及它们如何应用和增强几何、信号处理等的实用性,那么您有必要花时间研究并熟悉其真实含义。

    这是一个很好的问题,大多数人只是点头,表现得好像很明显。除非你的名字是布莱斯或芮妮,否则很可能不是。

        4
  •  3
  •   duffymo    14 年前

    二维或三维空间中的游戏需要几何图形。用于运动建模的物理引擎确实需要几何图形。三角函数是几何的基础。

    拿一些简单的东西,比如弹跳。弹丸撞击墙壁和弹回的物理原理会很快让你相信trig函数的效用。

        5
  •  3
  •   TaslemGuy    14 年前

    三角法对于生成几乎所有曲线(如椭圆或圆)至关重要,因此在游戏开发中有大量的用途。此外,正弦波对于Perlin噪声和其他许多特殊效果很有用。

        6
  •  3
  •   mikek3332002    14 年前

    在旋转矩阵中使用的一个例子是三角函数

    例如

    该矩阵用于围绕原点旋转X、Y平面中的一个点。

    |x'| = | cos a    -sin a | | x |
    |y'|   | sin a     cos a | | y |
    
    • X、Y原点
    • x',y'转换点
    • 逆时针旋转的角度
        7
  •  3
  •   Bill K    14 年前

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

    这样做时遇到的问题应该能给你问题的答案。如果您对sin和cos有一个基本的理解,那么您应该能够使用它们使绘制时钟变得非常容易。

    如果这不能给你答案,试着画出来,没有罪恶和罪恶。

        8
  •  1
  •   Luis Miguel Serrano    14 年前

    好吧,我马上想到的一个应用程序是游戏中的特效…比如说你有一种武器、咒语、能力,或者某种效果,可以制造一束光……你可以玩弄数学来“塑造光束”…

    同样地,假设你有一个门户,你希望在激活或进入时播放一些整洁的动画,你可以用向量和旋转矩阵来玩,你可以用数学和你的想象力来做很多神奇的事情…