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