好吧,今天,讓未來(lái)帶領(lǐng)大家進(jìn)入“真三維的 Flash 世界”——其實(shí)只是很簡(jiǎn)單的“三維”了。
先看看這個(gè):
三維動(dòng)畫(huà)可能對(duì)大多數(shù)人來(lái)說(shuō)都是可望而不可及的吧?是不是總覺(jué)得自己不可能制作出真正的三維的東西來(lái)呢?錯(cuò)!當(dāng)你了解了三維的基礎(chǔ)知識(shí)以后,這些想法就不存在了!而且您會(huì)很快就掌握它的制作方法!不相信?舉個(gè)例子,我一直沒(méi)有研究過(guò)三維基礎(chǔ)知識(shí),當(dāng)我找到一本書(shū)以后,馬上就編寫(xiě)出我的第一個(gè)真三維的動(dòng)畫(huà),僅僅半小時(shí)!好了,有信心了吧?開(kāi)始!
1)在平面上畫(huà)線(xiàn)
在 Flash 中,所謂“畫(huà)”線(xiàn),其實(shí)就是將一個(gè)線(xiàn)型的 MovieClip 改變角度和長(zhǎng)度,并且把它放在正確的位置上。
我現(xiàn)在來(lái)說(shuō)明怎樣“畫(huà)”一條線(xiàn)段。
首先,看我們的 MovieClip,它是這個(gè)樣子的:

下面,我們?cè)撻_(kāi)始“畫(huà)”的過(guò)程了。從 (x1,y1) 到 (x2,y2)。
首先,看下圖,我們可以復(fù)習(xí)一下上學(xué)時(shí)學(xué)到的東西,了解一下怎樣求兩點(diǎn)之間的距離。

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

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