flash中如何通過多點繪製光滑曲線

2021-08-25 03:27:22 字數 864 閱讀 7613

[1b]問題:有n個隨機點,需要用光滑曲線將起連線起來,曲線看上去要有一定的曲度?[/1b]

[1b]思路1:[/1b]從第乙個點穿過第二個點到第三個點繪製曲線,然後再穿過第四個點到第五個點繪製曲線,穿過第六個點到第七個點。。。這樣可以看出來,點的個數n比為奇數,才可以畫到終點,暫設定n=9。

var numpoints = n;//n必為奇數,暫設為9

//建立隨機點構成的乙個陣列

var points:array = new array();

for(var i=0;i

[1b]思路2:[/1b]在每兩個點之間插入乙個新的點,位於原兩點之間,用所插入的點為每條曲線的起始點和終點,用原來的點作為控制點畫曲線,這樣沒有點的個數必為奇數的限制,且畫出來的曲線比第一種方法的曲線更加「好看」。如下圖:

,參考:

[url=

和[url=

)從圖上看出,第乙個插入的點,與最後乙個插入的點沒有用到,也就是說沒有用來作為任何控點和終點,所以只需要在第二個點和倒數第二個點之間插入新點,演算法如下:

var numpoints = n;

var points:array = new array();

for(var i=0;i[1b]總結:[/1b]思路1中是經過每個原始點畫曲線,但必須要求點的個數為奇數,且最小給定點個數為 三,畫出來的曲線可以看出明顯的銜接,曲度不夠,不是要求的曲線;思路2中的曲線只是經過了第乙個點和最後乙個點,中間的點是根據原有點來插入的點,也就 是說並沒有經過給出的點,而是經過由給出點所得出的新點,這種方法得出的曲線沒有點數必為奇數的限制,且曲度也可以達到要求。

通過多點平滑曲線的實現

通過多點平滑曲線的實現 大家都知道使用貝塞爾曲線演算法來畫曲線,但是如果想經過特定的一系列點來畫曲線,只使用普通的貝塞爾演算法就不夠用了.以後需要完善的有兩個方面 1 實現曲線的閉合.現在閉合點沒有圓滑過渡.並不能簡單後點迴圈接到前點來計算斜率,需要一直迴圈下去直到找到斜率誤差小於一定值的點停止.2...

flash中通過XMLSocket監控生產

二 技術介紹 2 xmlsocket 物件 實現了客戶端socket 套接字 允許包含flash應用的瀏覽器與服務端建立socket連線,之後flash應用與服務端就可以相互傳送xml資料,而且在乙個socket連線建立之後,在該連線上傳送的資料量是沒有限制的,直到socket連線關閉。使用xmls...

Flash中如何使用濾鏡

使用濾鏡 應用或刪除濾鏡 複製和貼上濾鏡 為物件應用預設濾鏡 啟用或禁用應用於物件的濾鏡 啟用或禁用應用於物件的所有濾鏡 建立預設濾鏡庫 物件每新增乙個新的濾鏡,在屬性檢查器中,就會將其新增到該物件所應用的濾鏡的列表中。可以對乙個物件應用多個濾鏡,也可以刪除以前應用的濾鏡。只能對文字 按鈕和影片剪輯...