位置: 编程技术 - 正文
推荐整理分享Tutorial 7 Rotation Transformation,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
本文源自: TransformationBackground
我们要讲的下一个变换是旋转变换,给定一个角度和点,随后使点绕着其中一个轴进行旋转。我们经常改变X、Y和Z红的其中两个,另外一个则保持不变。这样一来,点走过的路径会在三个主要的平面上:XY(绕着Z轴旋转的时候),YZ(绕着X轴旋转的时候)和XZ(绕着Y轴旋转的时候)。当然还有更复杂的旋转变换,你可以绕任意一个向量进行旋转,当然我们现在不需要了解这个。
然我们根据概述来定义问题。思考一下下面的图表: 把(x1,y1)点绕着圆圈旋转到(x2,y2)点。换句话说我们想对(x1,y1)旋转alpha2。我们先假定圆圈的半径为1。那么会有以下等式: x 1 =cos(α 1 )y 1 =sin(α 1 )x 2 =cos(α 1 +α 2 )x 2 =sin(α 1 +α 2 ) 我们用下面的三角函数来展开x2,y2 cos(α+β)=cos(α)⋅cos(β)−sin(α)⋅sin(β)sin(α+β)=sin(α)⋅cos(β)+sin(α)⋅cos(β) 通过上面的三角函数可以写出: x 1 =cos(a 1 +a 2 )=cos(a 1 )⋅cos(a 2 )−sin(a 1 )⋅sin(a 2 )=x 1 ⋅cos(a 2 )−y 1 ⋅sin(a 2 )y 2 =sin(a 1 +a 2 )=sin(a 1 )⋅cos(a 2 )+cos(a 1 )⋅sin(a 2 )=y 1 ⋅cos(a 2 )+x 1 ⋅sin(a 2 ) 在上面的图表中,我们看向XY平面而Z轴直接指向着页面。如果X或者Y是四维向量的一部分,所以上面的的等式可以写成矩阵的形式(矩阵不影响Z或W) ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ cosαsinα −sinαcosα ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⋅⎡ ⎣ ⎢ ⎢ ⎢ ⎢ xyzw ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ x⋅cosα−y⋅sinαx⋅sinα+y⋅cosαz1 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ 如果你想绕着Y和Z轴旋转,那么等式也是极其类似了但是矩阵会有轻微的变化。下面就是绕着Y轴旋转的矩阵。 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ cosα0sinα0 −sinα1cosα0 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⋅⎡ ⎣ ⎢ ⎢ ⎢ ⎢ xyzw ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ x⋅cosα−z⋅sinαyx⋅sinα+z⋅cosα1 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ 绕着X轴旋转的等式: ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ 0cosαsinα0 0−sinαcosα0 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⋅⎡ ⎣ ⎢ ⎢ ⎢ ⎢ xyzw ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ xy⋅cosα−z⋅sinαy⋅sinα+z⋅cosα1 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥
Source walkthru这个教程中的代码变化及其简短。我们只改变代码中一个变换矩阵。
当绕着Z轴旋转的时候,你也可以尝试其他的旋转,但是我认为没有经过从3D到2D的投影处理,旋转看起来会很无趣。我们会在后面的几个教程里面完成所有管线的变换。
Android OpenGL ES(一)----必备知识 1.手机的坐标空间我们都知道要想在手机上随心所欲的绘制图形,就必须了解手机的坐标体系。下图就是将坐标映射到手机屏幕的坐标。图1手机屏幕基
Android OpenGL ES(二)----平滑着色 直线或者三角形上的每个片段混合后的颜色可以用一个varying生成。我们不仅能混合颜色,还可以给varying传递任何,OpenGL会选择属于那条直线的两个,或
Tutorial 8:Scaling Transformation 本文源自:
标签: Tutorial 7 Rotation Transformation
本文链接地址:https://www.jiuchutong.com/biancheng/369427.html 转载请保留说明!上一篇:Tutorial 6:Translation Transformation
下一篇:Android OpenGL ES(一)----必备知识
友情链接: 武汉网站建设