好的,所以我會盡量保持描述性。在Actionscript 3中將像素轉換爲貝塞爾曲線
我正在爲需要上傳圖像的jibjab樣式遮罩功能的客戶端項目工作。
我想能夠生成一個數據庫可存儲對象,其中包含一個貝塞爾形狀的錨/控件位置,所以我可以稍後將其拉出並重新屏蔽該對象。這一切都很容易做到,除了一個問題:我需要從用戶繪製的輪廓中創建貝塞爾對象。
到目前爲止,這裏就是我想象中的要處理:
上按下鼠標,創建一個新的精靈,的beginFill和的moveTo鼠標位置。
在鼠標移動時,lineTo一個XY座標。
在鼠標上,endFill。
這一切都很好。我可以在這裏存儲信息,但是我會看到一個GIGANTIC對象,裏面充滿了大量無用的x/y座標,沒有辦法在每個像素上放置句柄之外進行微調。 (我不妨給最終用戶鉛筆工具...)
這裏就是我儘量想爲貝塞爾曲線的計算雲:
1:圖時,我需要開始一個新的曲線,並在此間隔上跟蹤像素的xy。我想象這只是一個像素數量,也許只是每增加一個鼠標移動一個計數變量,並每x像素一個新的。這裏的問題是一些曲線不準確,其他曲線不必要,但我真的只需要一個普通的區域,而不是一個確切的表示,所以它可以工作。儘管如此,我會更開心一點。
2:取每個新的x/y,將它作爲錨點,並找出控制線將在哪裏與最後一個錨點之間建立曲線。這是我真正掛斷的地方。我敢肯定有人已經在Flash中做到了這一點,但沒有任何數量的谷歌搜索似乎可以幫助我完成這一任務。我已經做了很多素描和什麼小算術,我可以把我的大腦包裹起來,但似乎無法找出將像素轉換爲貝塞爾曲線的方法。
這可能嗎?我真正需要的是接近相同形狀的東西。我考慮的可能只是當下一個像素相對於當前線或某物超過180度的角度放置錨時,只是在這些變化之間抓住弧的邊緣,但無論我嘗試多麼努力,似乎無法弄清楚如何讓這個工作!
感謝您的幫助,我一定會在這裏發佈我的進步,我走了,我認爲這可能是在許多應用中非常有用,只要它實際上是可行的......
傑西