好吧,今天,讓未來帶領大家進入“真三維的 Flash 世界”——其實只是很簡單的“三維”了。
先看看這個:
三維動畫可能對大多數人來說都是可望而不可及的吧?是不是總覺得自己不可能制作出真正的三維的東西來呢?錯!當你了解了三維的基礎知識以后,這些想法就不存在了!而且您會很快就掌握它的制作方法!不相信?舉個例子,我一直沒有研究過三維基礎知識,當我找到一本書以后,馬上就編寫出我的第一個真三維的動畫,僅僅半小時!好了,有信心了吧?開始!
?。保┰谄矫嫔袭嬀€
在 Flash 中,所謂“畫”線,其實就是將一個線型的 MovieClip 改變角度和長度,并且把它放在正確的位置上。
我現在來說明怎樣“畫”一條線段。
首先,看我們的 MovieClip,它是這個樣子的:

下面,我們該開始“畫”的過程了。從 (x1,y1) 到 (x2,y2)。
首先,看下圖,我們可以復習一下上學時學到的東西,了解一下怎樣求兩點之間的距離。

是了,兩點之間的距離應該是dx= x2 - x1;
dy= y2 - y1;
line_length = Math.sqrt(dx*dx+dy*dy);
然后,再看看怎樣求旋轉的角度。我們從三角函數的知識知道:正切 tan(ANGLE)=dy:dx,那么,好,我們已經知道了 dx 和 dy,就可以得出 tan(ANGLE) 的值,然后用 Flash 5 提供的反正切函數 atan 就可以計算出 ANGLE。
不過,要注意的是,取得的 ANGLE 是以弧度計算的,我們還需要把它轉換成角度。為什么要轉換成角度呢?因為我們要旋轉 MovieClip,而這個旋轉的角度不是弧度,而是標準的角度。取得角度以后,如果是鈍角,還要做一下運算。具體程序如下: angle = Math.atan(dy/dx);
angle = angle*180/Math.PI;
if (dx
取得長度、角度以后,就可以“畫”線了,我們先把線的頂端設置到 (x1,y1),然后通過改變長度和角度使得線的尾部到達 (x2,y2)。setProperty ("line", _x, x1);
setProperty ("line", _y, y1);
setProperty ("line", _rotation, angle);
setProperty ("line", _xscale, line_length);
好了,“畫”線這個最基本的環節我們完成了!
?。玻┛臻g上的點和線
平面上的點我們會用 (x,y) 來表示,而當這個概念延伸到三維上以后,空間上的點就應該定義為 (x,y,z) ,其中,xy 的意義和傳統上是一樣的,而這個z則是代表垂直于平面上的“深度”,因此,在空間上的點 (10,10,100) 會表現得比 (10,10,10) 更“深”一些。
那么,怎樣來在二維平面上來表現空間上的點的位置呢?這里有一個經典的算法:x=(x/(z+d))*d;
y=(y/(z+d))*d;
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashdonghuajiaocheng/1116.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
