Flash与3D编程探秘(六)- 全方位旋转摄像机
2008-11-12 11:51:10 来源:WEB开发网核心提示:本文示例源代码或素材下载 前面我们讨论过了如何横向旋转和移动摄像机,希望你已经完全理解,Flash与3D编程探秘(六)- 全方位旋转摄像机,因为本文中的内容是紧接着上一篇来的,回想一下,如果你沿y旋转后,再打算沿x轴旋转,在前面我们制做的动画中,摄像机的旋转一直是围绕着y轴(竖直向上的轴)旋转
本文示例源代码或素材下载
前面我们讨论过了如何横向旋转和移动摄像机,希望你已经完全理解,因为本文中的内容是紧接着上一篇来的。回想一下,在前面我们制做的动画中,摄像机的旋转一直是围绕着y轴(竖直向上的轴)旋转,然而现实中我们可以上下旋转摄像机,甚至可以把摄像机倾斜一定角度,这就提醒了我们还需要更深入的研究旋转这个课题。下面几个动画演示了我们摄像机(简单的摄像机轮廓)3种旋转模式,从左到右分别是横向旋转,纵向旋转,倾斜。从我们3D空间角度来说,分别是沿y,x和z轴旋转。
横向和纵向旋转摄像机
倾斜摄像机
再介绍一些三角函数方程
事情变得复杂起来了!不过请你还是保持头脑清醒,这一篇文章你的任务就是学会纵向旋转和倾斜摄像机。你也许会想,我已经学会了横向旋转摄像机,算法中我们使用了一个panning的变量代表旋转角度,那么我再加两个变量,然后按顺序先沿x旋转,然后再沿y,最后z旋转不就好了。Well,这种想法很接近但却是错的(不要把3D数学想的那么简单)。来看一下下面的两个图,还是以3D空间在2D平面上的投影举例,我们把线段OB沿着z轴(也就是2D平面上 的原点)旋转大约78度,可以看到OB的长度就是我们的旋转半径。那么接下来,我们把OB沿y轴旋转,看一下图中的旋转半径是多少?不难看出,我们的旋转半径明显的变小了。继续,如果你沿y旋转后,再打算沿x轴旋转,你还是会有同样“半径变化”的问题。
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接