利用java语言对三次样条曲线的实现

2014-04-19 02:47刘丹
赤峰学院学报·自然科学版 2014年4期
关键词:贝塞尔图形学刘丹

刘丹

(大连广播电视大学 理工系,辽宁 大连 116021)

利用java语言对三次样条曲线的实现

刘丹

(大连广播电视大学 理工系,辽宁 大连 116021)

计算机绘图的核心是画线,文中通过对样条曲线的数学概念进行分析,应用java语言中的系统相关类给出三次样条曲线的实现过程.

java 2d技术;样条曲线;平滑曲线

Java语言中关于曲线问题的高级应用开发在jdk尚未支援2D图形之前,只可以画出直的、相同粗细的线条.现在可以通过2D API绘出不同粗细的线条及圆滑的曲线.通过系统java.awt.geom包中提供了Line2D、QuadCurve2D(二次贝塞尔曲线)及CubicCurve2D(三次贝塞尔曲线)等相关的类,让程序员能够轻松地绘出想要的线条.但想要画出更平滑的多个数据样本点的时候,贝塞尔曲线就不能满足要求了,为此,我们应采用样条曲线来完成.而曲线平滑的原则是,必须通过所有的样本点,另外,不论有多少样本点,曲线的阶次最大为三次,所以是稳定的.

1 三次样条曲线的数学原理

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]上二阶连续可导;

(3)在每个子区间[xi,xi+1]上,s(x)是x的三次多项式;则称s(x)为过型值点的三次样条函数,由三次样条函数构成的曲线称为三次样条曲线.

三次样条函数曲线的求解条件

已知:

(1)n个数据点Pi(xi,yi),i=1,..,n

(2)每一段都是三次的多项式函数曲线

(3)节点达到二阶连续

(4)两个端点的特性(固定端抛物端自由端)

1.2 三次样条函数曲线的求解方法

曲线:

2 java编写的三次样条曲线关键代码

根据三次样条函数曲线的求解方法给出满足条件代码编辑

3 样图展示

〔1〕孙正兴.计算机图形学教程[M].机械工业出版社,2006.

〔2〕(美)Peter Shirley.计算机图形学[M].人民邮电出版社,2007.

〔3〕百度文库.JAVA 2D高级绘图.

TP312JA

A

1673-260X(2014)02-0008-02

猜你喜欢
贝塞尔图形学刘丹
双零阶贝塞尔波束的传播及对单轴各向异性球的散射特性*
看星星的人:贝塞尔
大漠三月
高中数学新型课堂教学探析
高鞋上云
求解贝塞尔类方程的推广试探函数法
突出实践需求的GIS专业《计算机图形学》课程优化改革
第7届国际图象图形学学术会议
非计算机专业计算机图形学教学改革初探
两个女生的较量