2012/8/23

Quadratic Bezier Curve Fitting Algorithm

手繪二次貝茲曲線 - 根據滑鼠路徑



問題 :
如何根據使用者的滑鼠軌跡
得到一個二次貝茲曲線

flash graphics 的 curveTo 畫出的線就是二次貝茲曲線
這條線需要三個參數 p0, p1, p2

graphics.moveTo(p0.x, p0.y);
graphics.curveTo(p1.x, p1.y, p2.x, p2.y);

所以我們要解決的問題是給定一個滑鼠軌跡座標陣列 x0,x1,...,xk
求出 p0, p1, p2 的值


解法:
我發現這篇論文寫得很好
http://figment.cse.usf.edu/~sfefilat/data/papers/TuBCT10.16.pdf


他簡單假設


p0 = x0
p2 = xk


接下來只要解 p1, 用一個逐步逼近最佳解的方式, 先假設p1在某個位置


算出目前誤差值 e
應該偏移的方向 Δp
更新 p1 = p1 + Δp
重作上面三行直到 e 的值不再變小為止


作法很簡單
但這裡還有很多細節沒講到
有興趣的人可以慢慢看論文
利用這篇論文可以實作出適合用在 flash 上的手繪曲線程式

2012/8/10

成功嶺受訓前後

成功嶺受訓前:

整天用電腦
整天吹冷氣
喝的是冰水
不知道三餐要吃什麼
想洗澡就洗澡 想吃飯就吃飯 想大便就大便
自以為家裡很整齊
時間過得很快

成功嶺受訓時:

沒電腦
沒冷氣
喝的是溫水
三餐都吃冷菜
定時洗澡  定時吃飯 想大便要趁休息時間夠長的時候
所有的物品都放在指定的位置
時間過的超慢 成功嶺就跟精神時光屋一樣 但集合時間卻很趕

成功嶺受訓後:

摸滑鼠感覺很陌生
吹冷氣會不舒服
喝冰水會不舒服
每間店都是人間美味
想洗澡就洗澡 想吃飯就吃飯 想大便就大便 超爽
忍不住就整理了起來 棉被的折法被制約了
發現一天24小時其實很長 到底是受訓時浪費時間還是受訓前浪費時間已經搞不清楚


碰冰的會不舒服 好像是感冒了 應該跟受訓沒關係 = =