[問題] 碰撞變形 擠壓 細胞模型 Voronoi Deraunay

看板Flash作者 (一..一)時間14年前 (2010/05/20 15:39), 編輯推噓10(10025)
留言35則, 4人參與, 最新討論串1/1
想請教版上各位前輩關於一個程式的程式邏輯, 需安裝 shockwave, adobe shockwave 安裝連結 http://get.adobe.com/shockwave/ 程式連結 網頁 http://art_en.storynest.com/Experiments/e_2003_Boba/e_2003_Boba.dcr 下載 http://ppt.cc/5__6 安裝完 shockwave 後使用瀏覽器開啟此檔案。 原始檔案似乎是使用 director 來製作, 我思考了良久沒辦法想出該如何以 flash 來重製, 目前想了幾個方法如下: 1.) 使用類似 drawCircle 的方法來繪製每個細胞, 以 AS 偵測若圓圈相交則於兩個交點繪製直線以做出擠壓變形的效果, 但似乎沒有辦法在畫出直線後將圓圈限制在只顯示到直線的部份... 2.) 在球內部設置 5~6 個節點,依據這些點來跑 hitTestPoint 並對球本體施加變形, 但這不知道用什麼方法去實行... 3.) 用 3d 系統來模擬環境並實行碰撞,但還沒接觸過 flash 的 3d 系統, 不知道是否可以藉 3d 系統做出這個模型? 我本身有玩過 3dMax 但即使想使用 3d 來製作, 目前我也毫無頭緒該如此製作碰撞變形的部份... 4.) 拖曳單一球體在最上面空白的地方移動時,會有格狀背景的感覺, 使我又有個先將背景以先繪製好蜂巢狀的透明格子,在將球體定位在裡面的想法, 但是重力變形似乎是我目前毫無頭緒該如何起步的門檻... 5.) 還是使用 flash 要達到這種效果是很困難的呢..非得使用 director 不可? 我使用的版本是 flash CS3,希望能夠有經驗的前輩可以指點我程式邏輯的明燈。 在此先感謝各位的撥冗閱讀,並感激您的回覆。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ Fron: 114.44.139.92 咦!? ※ 編輯: chann 來自: 114.44.139.92 (05/20 16:25)

05/20 17:03, , 1F
"as3 physics engine"你可以用這個當關鍵字google看看
05/20 17:03, 1F

05/20 18:09, , 2F
先把每個cell想成一個中心點和一個"假想半徑"
05/20 18:09, 2F

05/20 18:09, , 3F
應是要把它想成是"圓形"這個出發點就錯了
05/20 18:09, 3F

05/20 18:10, , 4F
每個中心點和假想半徑,再加上彈性係數,就可算出下一個
05/20 18:10, 4F

05/20 18:11, , 5F
frame的時候每個cell應該要移動到哪裡
05/20 18:11, 5F

05/20 18:11, , 6F
要嘛自己算,要嘛用物理引擎算,下一步才是render
05/20 18:11, 6F

05/20 18:11, , 7F
這個render方式看起來像Voronoi graph,可以去Google查
05/20 18:11, 7F

05/20 18:12, , 8F
每一個Voronoi graph的多邊形內部用圓形漸層填色
05/20 18:12, 8F

05/20 18:12, , 9F
就可以作出最終結果,漸層中心點即為cell中心點
05/20 18:12, 9F

05/20 18:15, , 10F
最後嘮叨一下,當AS用到一定程度之後,盡量別碰hitTest
05/20 18:15, 10F

05/20 18:15, , 11F
那是一個又吃資源又粗糙的AABB碰撞偵測方式
05/20 18:15, 11F

05/20 18:16, , 12F
像這種圓形物件的碰撞偵測,就真的要自己用數學來算
05/20 18:16, 12F

05/20 18:40, , 13F
感謝版主及cj大提供的大方向 助益良多! 特此拜謝<0>
05/20 18:40, 13F

05/20 18:48, , 14F
請問 director 可以用很簡單的方法作出這個嗎?
05/20 18:48, 14F

05/20 18:48, , 15F
我想問的是 director 可以比 flash 容易作嗎?
05/20 18:48, 15F

05/20 20:26, , 16F
想請益一下,有關版大說搜尋物理引擎部份,應該只有重力&
05/20 20:26, 16F

05/20 20:26, , 17F
碰撞部份吧,Vonoroi 的演算法還是必須自己 code 出來囉?
05/20 20:26, 17F

05/20 20:27, , 18F
是啊,網路上資源也很多啊,可以到WonderFL看看
05/20 20:27, 18F

05/20 20:27, , 19F
WonderFL有一堆Voronoi範例,Wiki則是有演算法
05/20 20:27, 19F

05/20 20:27, , 20F
還是有什麼引擎有提供寫法以供參考呢@@
05/20 20:27, 20F

05/20 20:31, , 21F
基本上Voronoi就是最近兩點之間的中垂線畫出來的圖形
05/20 20:31, 21F

05/20 20:53, , 22F
其實我原本以為是 voronoi 只控制遮罩形狀耶
05/20 20:53, 22F

05/20 20:53, , 23F
因為最近都在想上面那篇遮罩的事 XD
05/20 20:53, 23F

05/20 21:00, , 24F
那樣也是OK啦,跟作色塊再填色效果一樣
05/20 21:00, 24F

05/20 21:00, , 25F
只不過不知道FP的render效能有沒有差
05/20 21:00, 25F

05/20 21:10, , 26F
作色塊、遮罩效果的部份可以請大大們指點一下嗎@@
05/20 21:10, 26F

05/20 21:26, , 27F
找出每三個點連結的三角形之外心,在選出一點將所有用到此點
05/20 21:26, 27F

05/20 21:28, , 28F
的三角形外心連起來畫成一個Sprite(可以這樣嗎?),再將
05/20 21:28, 28F

05/20 21:28, , 29F
Sprite 填入漸層
05/20 21:28, 29F

05/20 21:49, , 30F
Voronoi畫法不是這樣的,演算法可以去wiki找
05/20 21:49, 30F

05/20 22:06, , 31F
自己實作voronoi有點累哦 還是找看看flash 有沒有寫好
05/20 22:06, 31F

05/20 22:06, , 32F
的lib比較快
05/20 22:06, 32F

05/20 22:30, , 33F
有沒有lib我不知道,不過WonderFL上有很多範例就是了
05/20 22:30, 33F

05/20 23:11, , 34F
感謝各位大大地回應~我先朝實做細胞碰撞為方向好了
05/20 23:11, 34F

05/20 23:11, , 35F
中間的爪子就等之後再來請益了~ <0>
05/20 23:11, 35F
文章代碼(AID): #1BzESL8g (Flash)
文章代碼(AID): #1BzESL8g (Flash)