3d 三角学与博弈发展
我理解sin和cos(以及其他一些三角函数)的意思,但我不知道它们能解决什么样的问题。当你在游戏开发(特别是3D游戏开发)中使用这些功能时,你能给我展示一些真实世界的例子吗3d 三角学与博弈发展,3d,trigonometry,3d,Trigonometry,我理解sin和cos(以及其他一些三角函数)的意思,但我不知道它们能解决什么样的问题。当你在游戏开发(特别是3D游戏开发)中使用这些功能时,你能给我展示一些真实世界的例子吗 谢谢。嗯,我马上想到的一个应用程序是游戏中的特效。。。假设你有一件武器、一个法术、一个异能,或者一种能发出光束的效果。。。你可以玩弄数学来“塑造光束” 同样,假设你有一个门户,你希望在激活或进入时播放一些整洁的动画,你可以玩矢量和旋转矩阵,你可以用数学和想象力的混合做很多令人惊奇的事情…2D或3D空间中的游戏需要几何图形。用
谢谢。嗯,我马上想到的一个应用程序是游戏中的特效。。。假设你有一件武器、一个法术、一个异能,或者一种能发出光束的效果。。。你可以玩弄数学来“塑造光束”
同样,假设你有一个门户,你希望在激活或进入时播放一些整洁的动画,你可以玩矢量和旋转矩阵,你可以用数学和想象力的混合做很多令人惊奇的事情…2D或3D空间中的游戏需要几何图形。用于建模运动的物理引擎忠实地要求几何体。三角是几何学的基础
就拿弹跳这样简单的东西来说吧。弹丸撞击、撞击墙壁和弹回的物理特性将很快让你相信trig函数的实用性。3D模型由顶点(3D空间中坐标对或三元组的数字列表)和连接它们的线定义。这些线生成的曲面可以进行渲染、照明、纹理处理等 例如,为了旋转对象,必须能够操纵这些顶点。如果你想将一个物体旋转若干度或弧度,你必须使用三角函数来计算它的旋转方向 基本trig是游戏、模拟等所需的任何3D操作的基础。值得您花时间研究并熟悉这些功能的真正含义、它们的局限性,以及它们如何应用和放大几何、信号处理等的有用性
这是一个伟大的问题;大多数人只是点头,表现得很明显。除非你的名字是Blaise或Renee,否则很可能不是 在游戏开发中,有很多情况需要使用三角函数。在编写游戏程序时,您通常需要做一些事情,如查找两点之间的距离或移动对象。以下是几个例子:
- 旋转宇宙飞船或其他运载工具
- 正确处理旋转武器发射的弹丸轨迹
- 计算两个对象(如台球或头部)碰撞后的新轨迹
- 确定两个对象之间是否发生碰撞
- 求轨迹的角度(给定对象在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调用和多边形胜过它们,但数学函数紧随其后。