實時三維動畫核心分析

2021-08-25 03:36:56 字數 1526 閱讀 9838

好吧,今天,讓未來帶領大家進入「真三維的 flash 世界」——其實只是很簡單的「三維」了。

先看看這個:

三維動畫可能對大多數人來說都是可望而不可及的吧?是不是總覺得自己不可能製作出真正的三維的東西來呢?錯!當你了解了三維的基礎知識以後,這些想法就不存在了!而且您會很快就掌握它的製作方法!不相信?舉個例子,我一直沒有研究過三維基礎知識,當我找到一本書以後,馬上就編寫出我的第乙個真三維的動畫,僅僅半小時!好了,有信心了吧?開始!

1)在平面上畫線

在 flash 中,所謂「畫」線,其實就是將乙個線型的 movieclip 改變角度和長度,並且把它放在正確的位置上。

我現在來說明怎樣「畫」一條線段。

首先,看我們的 movieclip,它是這個樣子的:

[img]/uploads/allimg/080329/1050440.gif[/img]

下面,我們該開始「畫」的過程了。從 (x1,y1) 到 (x2,y2)。

首先,看下圖,我們可以複習一下上學時學到的東西,了解一下怎樣求兩點之間的距離。

[img]/uploads/allimg/080329/1050441.gif[/img]

是了,兩點之間的距離應該是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);

好了,「畫」線這個最基本的環節我們完成了!

2)空間上的點和線

平面上的點我們會用 (x,y) 來表示,而當這個概念延伸到三維上以後,空間上的點就應該定義為 (x,y,z) ,其中,xy 的意義和傳統上是一樣的,而這個z則是代表垂直於平面上的「深度」,因此,在空間上的點 (10,10,100) 會表現得比 (10,10,10) 更「深」一些。

那麼,怎樣來在二維平面上來表現空間上的點的位置呢?這裡有乙個經典的演算法:x=(x/(z+d))*d;

y=(y/(z+d))*d;

ZZ Linux 做三維動畫

你還在使用windows系統下來做三維動畫片嗎?那你就落伍了,國際知名的動畫公司都是用linux系統來生產動畫片的,包括威塔 夢工廠 皮克斯等大公司。他們為什麼用linux?說來簡單,乙個重要原因是因為早期的三維動畫軟體都是執行在專業的圖形工作站上的 上世紀九十年代那時候的普通個人電腦根本玩不起 工...

三維動畫製作流程細節

隨著三維技術的成熟,三維動畫運用到各種宣傳手法中,三維動畫帶給人不一樣的視覺體驗。今天江蘇風雷傳媒給大家講解三維動畫的整個流程細節 1.前期策劃 1 劇本,造型設定,故事板也稱做為指令碼。2 概念設計 業內通用的專業動畫流程前期製作.3 內容包括根據劇本繪製的動畫場景 角色 道具等的設計以及整體動畫...

三維動畫 Blender軟體介紹

4 學習資料 參考會什麼會寫這部落格呢?乙個學習覆蓋面不收斂的人,看啥好東西都要搗鼓下 github上開源到2.8版本 2019 7 30 之後涉及更核心的演算法,所以該核心會先編譯再提供,後續版本需要pip install獲取。官方使用者手冊 1 百科 blender 2 官網 blender 3...