Written on 2012年7月1日 @ 03:53 | by sc | Tags: 旋转矩阵  


jiaoyanzu/WULI/ShowArticle. aspx?articleId=440&classId=4 你想在绘制模型之前独立地移动、旋转并/或缩放它们。 你可以设置对象的世界矩阵完成这个功能,而矩阵是可以存储任何变换(平移、旋转或缩放等操作)的对象。旋转矩阵。你可以简单地使用XNA框架提供的基本步骤创建一个变换矩阵: 第一个步骤创建一个平移矩阵,你可以定义将模型沿着X、Y和Z方向移动的距离。第二个步骤让你可以缩放模型,第三个步骤返回绕X、Y和Z轴旋转的矩阵。
你可以乘以这些矩阵组合多个变换,但必须按照正确的顺序,对于双色球工具箱。这会在本教程中讨论到。 当将模型绘制到屏幕上时,会将它的初始位置放置在3D空间的(0,0,0)点上,而最常见的操作就是让模型在3D场景中移动。
这很简单。在Draw步骤中定义一个时间变量代表程序开始以来经过的秒数(精确起见使用毫秒,然后除以1000)。然后定义一个矩阵保存沿X轴方向的平移,看着旋转矩阵。而平移量由当前时间决定: 当将这个矩阵设置为世界矩阵时,可以让模型以每秒一个单位的速度沿x方向移动。下面的代码使用这个矩阵绘制模型:提供。 要让模型中的所有部分都在正确的位置,你看福彩字谜。需要使Bone变换作为世界矩阵的一部分 (可见教程4-9学习bone变换的更多知识)。对于你可以简单地使用XNA框架提供的基本方法创建一个变。但这次,你通过将bone变换矩阵与平移矩阵相乘将两者组合起来,一定要将世界矩阵放置在乘式的右边,因为在矩阵乘法中顺序是很重要的。当你运行这个代码时,模型会缓缓地沿着x轴活动。
对于缩放和旋转步骤类似。试着使用下面得世界矩阵:双色球旋转矩阵工具。 开始时time = 0,模型看不见,明天双色球号码。随后慢慢变大。想知道双色球旋转矩阵工具。一秒后达到原始大小,之后会继续变大。接下来使用这个矩阵: 模型会延续地绕y轴旋转。你知道双色球工具。 通常情况下,你会组合多个变换作为世界矩阵。例如,

双色球第2012049期开奖结果视频旋转矩阵?你可以简单地使用XNA框架提供的基本方法创建一个变

。你想将一个角色移动到一个新位置,相比看双色球旋转矩阵。将它旋转到行走的方向并对它进行缩放。学会

旋转矩阵旋转矩阵?你可以简单地使用XNA框架提供的基本方法创建一个变


因为这是一个小例子,所以使用下列世界矩阵: 这个组合矩阵将作为模型的世界矩阵。但是你可以用另一种方式组合这两个矩阵: 当你运行程序后会发现结果是不同的。后面已经提到,对于旋转。在矩阵数学中,乘法的顺序是很重要的,接下来我将讨论这个问题。 在矩阵数学中,将矩阵M1乘以矩阵M2的结果通常与将M2乘以M1的结果是不同的,在下面的章节中,我会讨论所有可能的组合。
有一个规则(或者说是技巧)你必须记得:相比看创建。在矩阵乘法中,M1*M2就是"M1在M2之后"的意思。旋转矩阵乘法的顺序是很重要的,这是因为当你首先绕A1轴旋转然后绕A2轴旋转,那么绕A1轴的旋转会在绕A2轴旋转前改变A2轴!
例如,其实旋转矩阵公式。M1表示绕向右轴旋转90度,M2表示绕向上轴旋转90度。旋转矩阵公式。
首先看一下M1*M2的情况,它的意思是"在绕向上轴之后绕向右轴旋转。简单。"想一下结果会如何。在这种情况中,你的右手臂始终对着向右方向。你首先绕向上轴旋转90度,这样你会面向左方,如图4-2左图所示。当你看一下右手臂,你会发现它跟着你一起旋转!所以当你绕向右轴旋转90度后,想知道方法。你会面朝下躺倒在地,如图4-2的右图所示。 下面看一下第二种情况M2*M1,表示"在绕Right轴旋转后绕Up轴旋转。"你首先绕你的向右方向旋转,一个。结果是面朝下,如图4-3的左图所示。你的向上方向变成了水平,即世界坐标系的向前方向。然后当你绕这个向前方向旋转时,结果是你面朝侧面,听听双色球工具。如图4-3的右图所示! 如你所见,对比一下双色球缩水工具。M1*M2和M2*M1会招致不同的结果,矩阵。这是因为当组合两个旋转时,第二个旋转轴会受到第一个旋转地影响。 在这种情况中,乘法的顺序仍是重要的。在这个例子中,M3表示绕Up轴旋转90度,旋转矩阵。M4表示沿x轴方向移动10个单位。 M3*M4表示"平移后旋转,"模型会首先移动到新位置。然后绕Up轴旋转,这两步如图4-4所示。 M4*M3的情况不同。首先整个坐标系(包括模型和x轴)绕Up轴旋转90度,如图4-5左图所示。双色球工具箱。然后,模型沿着旋转过的x轴移动10个单位。但初始的x轴已经旋转了,本来它位于你的右方,但现在在你的前方!这意味着你实际上是沿世界坐标系向前的z轴在做平移。 缩放和平移的乘法顺序还是重要的。本例中。学会框架。M5表示缩放0.5倍,你知道xna。M6表示沿x轴平移10个单位。 M5*M6表示先平移后缩放。所以首先模型向右沿x轴平移10个单位,然后缩小,如图4-6所示。 M6*M5的情况中你首先将整个坐标系(包括模型和x轴)缩小,基本。然后缩小的模型沿着缩小的x轴移动10个单位。因为x轴也缩小了一半,所以只移动了相当于5个单位!结果是模型移动的不够远,如图4-7所示。 幸运的是,有些变换无需考虑乘法的顺序。学习使用。例如,组合两个平移矩阵是安全的,想知道双色球工具箱。因为模型只是简单地移动了两次。两个缩放变换的组合也是安全的。
例如,先放大2倍再缩小10倍和先缩小10倍再放大2倍结果是一样的。最后,缩放不影响旋转,反之亦然。旋转矩阵。这是因为只会缩放坐标轴,但轴之间的角度仍保持90度不变。所以当缩放矩阵和旋转矩阵相乘时,你可以不消考虑乘法的顺序。
译者注:你知道可以。在《Microsoft XNA Game Studio Creator's Guide》一书的第5章提到一个小技巧:使用I.S.R.O.T.作为矩阵组合的顺序通常就是你想要的结果,此处I.S.R.O.T. 分别代表Identity,Scale,Revolve,Orbit,Translate。 下面的代码组合了旋转和平移矩阵:旋转矩阵。 //draw model float time = (float)gameTime.TotalRealTime.TotalMilliseconds/10 00.0f; Matrix worldMatrix = Matrix.CreateScale(0.005f)* Matrix.CreateRotationY(time / 10.0f) * Matrix.CreateTranslation(time, 0, 0); myModel.CopyAbsoluteBoneTransformsTo(modelTransfor ms); foreach (ModelMesh mesh in myModel.Meshes) { foreach (BasicEffect effect in mesh.Effects) { effect.EnableDefaultLighting(); effect.World = modelTransforms[mesh.ParentBone.Index] * worldMatrix; effect.View = fpsCam.ViewMatrix; effect.Projection = fpsCam.ProjectionMatrix; } mesh.Draw(); }

双色球工具箱
你看你可以简单地使用XNA框架提供的基本方法创建一个变
想知道双色球旋转矩阵工具
你知道双色球工具
转矩

  1. 0 Response to “旋转矩阵?你可以简单地使用XNA框架提供的基本方法创建一个变”

Post a Comment

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

About Me

中国福利彩票双色球预测专家预测双色球中奖规则福彩双色球走势图双色球玩法双色球开奖时间-双彩双色球工作室

Find entries :