Questions tagged «angles»

4
为什么在游戏开发中弧度优先于度?
我一直在寻找弧度的定义,发现数学家更喜欢弧度,因为它们是从pi派生的,而不是像度数那样完全任意的。 但是,我还没有找到在游戏开发中使用它们的令人信服的理由,可能是由于我完全缺乏相关的数学理解。我知道语言中大多数sin / cos / tan函数的弧度是多少,但是有人也可以按度创建库函数(并避免使用pi时固有的舍入错误)。 我不希望这是一个自以为是的民意测验,我只是想听听那些从事游戏开发(以及相关的数学研究)的人,他们认为弧度提供了优于学位的体验,而不是“我们使用弧度因为我们一直使用它们”,只是为了帮助我(可能还有其他人)了解它们的好处。

2
大多数2.5D等距游戏的视角透视角是多少[关闭]
我检查了几个非常流行的游戏,以确定它们使用的视角。为此,我创建了一个等轴测为45度和60度的网格,并将其放在屏幕快照(在本例中为Diablo II)中。这些网格都不符合游戏的视角。因此,我试图找到最适合透视图的角度,该角度接近53.5度。但是,这个数字似乎无处不在,我相信定义透视角度的数字背后有很强的逻辑。我尝试了9/16 * 90度和3/4 * 90度(来自屏幕分辨率16:9和4:3的比率),但我的所有假设似乎都不正确。这是我的意思的屏幕截图: 60度 45度 介于两者之间-53.5度-非常接近实数 我真的需要知道什么是真正的学位,以及它的来源。任何帮助都非常感谢!谢谢!

12
比较角度并找出差异
我想比较角度并了解它们之间的距离。对于此应用程序,我正在以度数工作,但它也适用于弧度和梯度。角度的问题在于它们取决于模运算,即0-360度。 假设一个角度为15度,一个角度为45度。相差30度,并且45度角度大于15度的角度。 但是,当您有345度和30度时,这种情况就会分解。尽管它们可以正确比较,但是它们之间的差异是315度,而不是正确的45度。 我该如何解决?我可以编写算法代码: if(angle1 > angle2) delta_theta = 360 - angle2 - angle1; else delta_theta = angle2 - angle1; 但是我更喜欢一个避免比较/分支的解决方案,并且完全依靠算术。

2
如何从变换矩阵中提取欧拉角?
我有一个实体/组件游戏引擎的简单实现。 变换组件具有设置局部位置,局部旋转,全局位置和全局旋转的方法。 如果将变换设置为新的全局位置,则局部位置也会更改,以在这种情况下更新局部位置,我只是将当前的变换局部矩阵应用于父级的变换世界矩阵。 在那之前,我没有任何问题,我可以获得更新的局部变换矩阵。 但是我正在努力如何在变换中更新局部位置和旋转值。我想到的唯一解决方案是从变换的localMatrix提取平移和旋转值。 对于翻译来说,这很容易-我只取第4列的值。但是轮换呢? 如何从变换矩阵中提取欧拉角? 是这样的解决方案右?: 要查找围绕Z轴的旋转,我们可以发现localTransform和X的X轴矢量之间的差值轴线parent.localTransform的矢量,结果存储在德尔塔,则:localRotation.z = ATAN2(Delta.y,德尔塔。X); 围绕X和Y旋转相同,只需要交换轴即可。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.