系統公告
個人檔案
個人圖檔
ID:dorajim15
暱稱:HackJim
地區:臺北縣

熱情贊助
輕旅行
文章分類
いらっしゃいませ
好時光貼曆
人氣指數
當日人次:
累積人次:
熱情贊助
RSS 訂閱
RSS2
ATOM
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam天空部落 本身立場。
POWERED BY
POWERED BY
會員登入免費註冊
September 10, 2008

真的中了AS的毒了
昨天上網看到別人的Flash煙火作品
決定自己也要來做一個
但是外表看似簡單的程式
自己寫之後才發現其實很麻煩


以下是我的作品連結
http://homepage.ntu.edu.tw/~b95b02014/working/firework2.html
我覺得還沒有做到很好
最主要的是煙火放出後到落下的那一段運動不太真實
原因是我的位置演算方法的影響
我的演算方法是利用漸慢移動來模擬
所以最末端的速度會接近零
但是煙火實際上速度不會到零
他是拋體運動,所以會變成零的只有Y軸方向的速度
因此一看就覺得不真實
但是我還沒有想到正確模擬運動的算法
畢竟沒有經過很多程式的訓練,沒有足夠的實力
話說昨晚我在寫這個程式的時候
遇到的第一個艱難就是煙火的隨機位置
因為我是用Math.random()這個函數來做隨機分佈
但是,由於電腦運算的速度太快了
一下子就給所有的煙火點隨機取好位置
乍看上面的描述覺得很正確啊?應該不會有錯
但是這個亂數函數我猜應該和C一樣
是利用時間去取的,所以說,每次取的時間可能差不到一毫秒
因此run出來的位置結果會排成兩條線
超機車的!
後來我想了很久,想到用數學的極座標的概念
也就是說,我給固定的半徑、角度
然後讓每個新產生的煙火點去取值
接著在用亂數去把取到的半徑和角度作稍微的變異
這樣就可以做到隨機分佈的點了
但是.............麻煩還沒結束
這樣算出來的點,大部分會塞在中心
這是因為我把煙火散佈的區塊分成六個半徑(也就是六個圓)
而每個圓所分得的點又一樣,但是越裡面的圓面積越小
所以點的密度也就越高了
為了這個,我又花了好一段時間寫不同區域的煙火點出現機率程式碼
看起來好像很難
其實就是控制每一個區域出現的煙火點數佔全部的幾分之幾而已
為了搞這些就搞了一個晚上,大約快四個小時
沒辦法.....我還太嫩了.....
另外,今早又把昨晚睡前想的解決模擬不真實的程式寫法試了一下
結果還是不行,於是就放棄了
看看過一陣子會不會有靈感
然後就加上錄影程式碼
也就是使用者放完煙火後可以按播放即可重現剛剛所放的煙火
然後,我就不想再改了,本來還想加音效的
但真的寫下去就快瘋掉了
這個比讀圖程式還麻煩啊!!


引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
留言 (2筆)
1.
已經寫的很不錯啦 :)
新年快樂唷~
 
板主回覆:
謝謝你囉!新年快樂!!
kiddthekid Dec 31, 2008 留言 |
2.
站長您好,我是多媒體設計系的學生

我們之後的畢業專題要朝向煙火的互動設計方面著手

不曉得您願不願意跟我們分享您找到的煙火作品範例

以及您的作品給我們交流參考?

可以的話我們感激不盡。
 
板主回覆:
OK阿!不過我不是專業的XD
你用私密留言留下聯絡方式吧!
阿姆 於 Jan 19, 2009 留言 |
發表你的留言 (字數限制 最多 2000 個中文字)
私密留言:
Name:




內容:
檢視行動版網頁  |  檢視正常版網頁