首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xna forward vector?

Xna forward vector?
EN

Stack Overflow用户
提问于 2011-06-21 06:25:39
回答 2查看 1.7K关注 0票数 0

我该如何轻松地做到这一点呢?框架中有没有我可以使用的函数,因为我创建了自己的函数,但我觉得它可能很慢(编程新手,所以我不知道)。

代码语言:javascript
复制
public Vector3 anglestoforward(Vector3 angles)
{
    return new Vector3((float)(Math.Cos(angles.Y) * Math.Cos(angles.X)),(float)(Math.Sin(angles.Y) * Math.Cos(angles.X)),(float)(Math.Sin(angles.X * -1)));
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-21 09:22:31

但这总是一样的,给我一个例子,我会如何使用它……

虽然你的代码会工作,如果每帧做几次,它的性能也不是问题,但当你想用3D编程做更多的基础工作时,你将学会更多地依赖线性代数(向量数学),而不是角度和三角。这还包括将方向存储为矩阵或四元数,而不是角度。你会发现自己几乎不需要像你所要求的那样将一组角度解析为一个向量。

基本上,角度很容易理解,也很直观,但与线性代数方法相比,使用它们的数学变得非常复杂。线性代数方法可能需要更多的学习,但它确实打开了创建3D算法的可能性的闸门。

Xna中各种类的内置方法更倾向于帮助3D的线性代数方法,而不是角度方法。

如果你愿意,这里有一篇我写的文章,描述了使用矢量和矩阵而不是角度的基础:Vector Math approach

票数 3
EN

Stack Overflow用户

发布于 2011-06-21 06:31:11

Vector3有一个Forward属性。如果使用矩阵,则可以使用Matrix.Forward属性。两者都将返回一个包含Forward vector组件的Vector3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6418297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档