3d 三角学与博弈发展

3d 三角学与博弈发展,3d,trigonometry,3d,Trigonometry,我理解sin和cos(以及其他一些三角函数)的意思,但我不知道它们能解决什么样的问题。当你在游戏开发(特别是3D游戏开发)中使用这些功能时,你能给我展示一些真实世界的例子吗 谢谢。嗯,我马上想到的一个应用程序是游戏中的特效。。。假设你有一件武器、一个法术、一个异能,或者一种能发出光束的效果。。。你可以玩弄数学来“塑造光束” 同样,假设你有一个门户,你希望在激活或进入时播放一些整洁的动画,你可以玩矢量和旋转矩阵,你可以用数学和想象力的混合做很多令人惊奇的事情…2D或3D空间中的游戏需要几何图形。用

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


谢谢。

嗯,我马上想到的一个应用程序是游戏中的特效。。。假设你有一件武器、一个法术、一个异能,或者一种能发出光束的效果。。。你可以玩弄数学来“塑造光束”


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

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


就拿弹跳这样简单的东西来说吧。弹丸撞击、撞击墙壁和弹回的物理特性将很快让你相信trig函数的实用性。

3D模型由顶点(3D空间中坐标对或三元组的数字列表)和连接它们的线定义。这些线生成的曲面可以进行渲染、照明、纹理处理等

例如,为了旋转对象,必须能够操纵这些顶点。如果你想将一个物体旋转若干度或弧度,你必须使用三角函数来计算它的旋转方向

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


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

在游戏开发中,有很多情况需要使用三角函数。在编写游戏程序时,您通常需要做一些事情,如查找两点之间的距离或移动对象。以下是几个例子:

  • 旋转宇宙飞船或其他运载工具

  • 正确处理旋转武器发射的弹丸轨迹

  • 计算两个对象(如台球或头部)碰撞后的新轨迹

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

  • 求轨迹的角度(给定对象在x方向和y方向的速度)

这里有一个很好的链接

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


三角法对于生成几乎所有曲线(如从椭圆或圆开始)至关重要,因此在游戏开发中有着广泛的用途。此外,正弦波对柏林噪声和许多其他特殊效果非常有用。

旋转矩阵中使用了一个示例触发函数

例如

该矩阵用于围绕原点旋转x、y平面上的点

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

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

      //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);
      
      它还用于其他用途,例如:

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

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

      你在这样做时遇到的问题应该会给你问题的答案。如果你对正反两个方面有了基本的了解,你应该能够用它们来让时钟画得很简单


      如果这还不能给你答案,试着画出没有正反两方面的问题。

      这确实是一个更适合GameDev StackExchange()的问题,但这里有一个链接可能对你的研究有所帮助:不过我会这样告诉你。在Unity/UDK和其他游戏引擎中,sin、cos和实时完成的数学函数是资源成本最高的。特别是手机游戏开发。我通过多种资源了解到,由于成本的原因,我会尽量减少这些呼叫!当然,draw调用和多边形胜过它们,但数学函数紧随其后。