XNA中的这种旋转行为是什么?
我刚从XNA出发,有一个关于旋转的问题。当你用XNA中的旋转矩阵乘以一个向量时,它是逆时针的。这我理解 然而,让我给你一个例子,我没有得到什么。假设我将随机艺术资产加载到管道中。然后,我创建了一些变量,以便在更新方法运行时将每帧增加2弧度(testRot+=0.034906585f)。我最困惑的是,资产在这个屏幕空间中是顺时针旋转的。这让我很困惑,因为旋转矩阵会逆时针旋转向量XNA中的这种旋转行为是什么?,xna,Xna,我刚从XNA出发,有一个关于旋转的问题。当你用XNA中的旋转矩阵乘以一个向量时,它是逆时针的。这我理解 然而,让我给你一个例子,我没有得到什么。假设我将随机艺术资产加载到管道中。然后,我创建了一些变量,以便在更新方法运行时将每帧增加2弧度(testRot+=0.034906585f)。我最困惑的是,资产在这个屏幕空间中是顺时针旋转的。这让我很困惑,因为旋转矩阵会逆时针旋转向量 还有一件事,当我指定位置向量的位置以及原点时,我知道我是围绕原点旋转的。我是否也要假设有垂直轴穿过此资源的原点?如果是,
还有一件事,当我指定位置向量的位置以及原点时,我知道我是围绕原点旋转的。我是否也要假设有垂直轴穿过此资源的原点?如果是,旋转从哪里开始?换句话说,我是从Y轴的顶部开始旋转还是从x轴开始旋转?XNA SpriteBatch在客户端空间中工作。其中“up”是Y-,而不是Y+(如笛卡尔空间、投影空间以及大多数人通常选择的世界空间)。这使旋转显示为顺时针方向(而不是笛卡尔空间中的逆时针方向)。旋转产生的实际坐标相同 旋转是相对的,所以它们实际上不是从任何指定的位置“开始” 如果使用数学函数,如
sin
或cos
或atan2
,则绝对角度始终以零弧度从X+轴开始,正向旋转方向朝Y+旋转
SpriteBatch
的操作顺序如下所示:
SourceRectangle
)最后,对每个批处理应用一个矩阵,将该客户机空间转换为GPU使用的投影空间。(投影空间从视口左下角的(-1,-1)到右上角的(1,1)。由于您是XNA的新手,请允许我介绍一个库,它将在您学习时对您有很大帮助。它被称为XNA调试终端,是一个开源项目,允许您在运行时运行任意代码。因此,您可以查看您的变量是否具有您期望的值。所有这些都发生在游戏顶部的终端显示屏上,并且不会暂停游戏。可在以下网址下载:
它是免费的,而且很容易设置,所以你真的没有什么损失。@llya-你可能应该接受其他问题的答案,这样其他人就会想回答你的问题。完成,全部接受。对不起,伙计们,忘了。哇,谢谢你们。解释得很好。我搜索了教程/书籍,他们所做的只是谈论这些,没有深入探讨。@llya:不客气。(注:别忘了投票并接受:)