劉丹
(大連廣播電視大學(xué) 理工系,遼寧 大連 116021)
利用java語(yǔ)言對(duì)三次樣條曲線的實(shí)現(xiàn)
劉丹
(大連廣播電視大學(xué) 理工系,遼寧 大連 116021)
計(jì)算機(jī)繪圖的核心是畫(huà)線,文中通過(guò)對(duì)樣條曲線的數(shù)學(xué)概念進(jìn)行分析,應(yīng)用java語(yǔ)言中的系統(tǒng)相關(guān)類給出三次樣條曲線的實(shí)現(xiàn)過(guò)程.
java 2d技術(shù);樣條曲線;平滑曲線
Java語(yǔ)言中關(guān)于曲線問(wèn)題的高級(jí)應(yīng)用開(kāi)發(fā)在jdk尚未支援2D圖形之前,只可以畫(huà)出直的、相同粗細(xì)的線條.現(xiàn)在可以通過(guò)2D API繪出不同粗細(xì)的線條及圓滑的曲線.通過(guò)系統(tǒng)java.awt.geom包中提供了Line2D、QuadCurve2D(二次貝塞爾曲線)及CubicCurve2D(三次貝塞爾曲線)等相關(guān)的類,讓程序員能夠輕松地繪出想要的線條.但想要畫(huà)出更平滑的多個(gè)數(shù)據(jù)樣本點(diǎn)的時(shí)候,貝塞爾曲線就不能滿足要求了,為此,我們應(yīng)采用樣條曲線來(lái)完成.而曲線平滑的原則是,必須通過(guò)所有的樣本點(diǎn),另外,不論有多少樣本點(diǎn),曲線的階次最大為三次,所以是穩(wěn)定的.
1.1 三次樣條曲線的定義
對(duì)于給定的n個(gè)型值點(diǎn)Pi(xi,yi),且hi=xi+1-xi>0,i=1,2,..,n,若y=s(x)滿足下列條件:
(1)在Pi(xi,yi)點(diǎn)上有yi=s(xi);
(2)S(x)在[x1,xn]上二階連續(xù)可導(dǎo);
(3)在每個(gè)子區(qū)間[xi,xi+1]上,s(x)是x的三次多項(xiàng)式;則稱s(x)為過(guò)型值點(diǎn)的三次樣條函數(shù),由三次樣條函數(shù)構(gòu)成的曲線稱為三次樣條曲線.
三次樣條函數(shù)曲線的求解條件
已知:
(1)n個(gè)數(shù)據(jù)點(diǎn)Pi(xi,yi),i=1,..,n
(2)每一段都是三次的多項(xiàng)式函數(shù)曲線
(3)節(jié)點(diǎn)達(dá)到二階連續(xù)
(4)兩個(gè)端點(diǎn)的特性(固定端拋物端自由端)
1.2 三次樣條函數(shù)曲線的求解方法
曲線:
根據(jù)三次樣條函數(shù)曲線的求解方法給出滿足條件代碼編輯
〔1〕孫正興.計(jì)算機(jī)圖形學(xué)教程[M].機(jī)械工業(yè)出版社,2006.
〔2〕(美)Peter Shirley.計(jì)算機(jī)圖形學(xué)[M].人民郵電出版社,2007.
〔3〕百度文庫(kù).JAVA 2D高級(jí)繪圖.
TP312JA
A
1673-260X(2014)02-0008-02
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2014年4期