Bezier曲線的自動繪制及應(yīng)用探討
出處:楊 帆1, 湯方平2 發(fā)布于:2011-08-27 08:18:22
1 Bezier曲線及其原理
在數(shù)學(xué)的數(shù)值分析領(lǐng)域中,貝塞爾曲線(Bézier曲線)是電腦圖形學(xué)中相當(dāng)重要的參數(shù)曲線。更高維度的廣泛化貝塞爾曲線就稱作貝塞爾曲面,其中貝塞爾三角是一種特殊的實例。貝塞爾曲線于1962年,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發(fā)表,他運用貝塞爾曲線來為汽車的主體進行設(shè)計。貝塞爾曲線初由Paul de Casteljau于1959年運用de Casteljau算法開發(fā),以穩(wěn)定數(shù)值的方法求出貝塞爾曲線。
Bezier曲線算法是一種直觀、易于調(diào)整、高效率的曲線擬合方法,這種方法能使使用者在工程設(shè)計中比較直觀地意識到所給條件與設(shè)計出的曲線之間的關(guān)系,能方便地控制輸入控制點以改變曲線的形狀。Bezier曲線的形狀由點的位置確定,而且曲線可能并不通過除兩端點外的所有給定點,點數(shù)量不夠或點位置難以處理的情況下,用三次樣條曲線方法也許不能生產(chǎn)光滑曲線。
Bezier曲線有不同的數(shù)學(xué)定義形式,如德卡斯特里奧遞歸(deCasteljau)算法、波恩斯坦基(BerNStein)原理等。本文中Bezier曲線的自動繪制方法采用Bernstein原理和參考文獻[2]提出的將中點分割和拐點分割相混合的Bezier曲線降階方法,其中Bezier曲線的數(shù)學(xué)基礎(chǔ)(影響曲線形狀的加權(quán)系數(shù))來自下式給出的Bernstein原理[1]:

2 軟件的接口及編程
Fortran語言具有強大的數(shù)學(xué)計算功能,AutoCAD具有強大的圖形繪制和編輯功能, 兩種軟件均是許多行業(yè)的工程技術(shù)人員所必備的工具,但集成兩種軟件的優(yōu)勢,將兩者有機地結(jié)合起來卻并非易事。目前,F(xiàn)ortran語言與AutoCAD軟件間數(shù)據(jù)通信方式主要有下面兩種[3-4]:
?。?)將Fortran的計算結(jié)果輸出為DXF格式,利用AutoCAD將其打開即可看到計算的結(jié)果圖像。
?。?) 通過VB實現(xiàn)Fortran與AutoCAD之間的數(shù)據(jù)通信,VB是通過AutoCAD ActiveX AutomatiON接口來建立與AutoCAD對象之間的聯(lián)系。
本文采用種方法,對AutoCAD軟件常用的基本繪圖命令利用Fortran語言編寫相應(yīng)的接口子程序,即建立Fortran與AutoCAD間的接口軟件。通過Fortran語言編程直接讀取離散控制點數(shù)據(jù),通過對離散控制點進行曲線擬合,生成AutoCAD支持的DXF文件,終利用編程生成的模型在AutoCAD環(huán)境下顯示,使其具有工程技術(shù)人員熟悉的友好用戶界面,并且具有人機交互的功能。下面僅給出了部分程序的清單。
繪制多段線的程序:
SUBROUTINEPLINE(X,Y,K,LY)
CHARACTER*(*)LY
DIMENSION(X(K),Y(K))
NA=0
WRITE(3,200)NA
WRITE(3,600)’POLYLINE’
NA=8
WRITE(3,200) NA
WRITE(3,600) LY
NA=66
WRITE(3,600) LY
WRITE(3,600) LY
NA=70
WRITE(3,200) NA
WRITE(3,600) LY
DO I=1,K
NA=0
WRITE(3,200) NA
WRITE(3,600)’VERTEX’
NA=8
WRITE(3,200) NA
WRITE(3,600) LY
NA=10
WRITE(3,200) NA
WRITE(3,210) Y(I)
CONTINUE
NA=0
WRITE(3,200) NA
WRITE(3,600)‘SEQEND’
NA=8
WRITE(3,200) NA
WRITE(3,600) LY
FORMAT(I3)
FORMAT(F12.6)
FORMAT(A)
RETURN
END
計算影響曲線形狀的加權(quán)系數(shù)的程序:
allocate(j(k+1,n))
m=n-1
t=1.0/k
call factorial(m,a)
do i=0,1,t
q=q+1
do w=0,m
call factorial(w,b)
!求階乘的子程序
c=m-w
call factorial(c,d)
call power(i,w,e)
!求冪次的子程序
f=1.0-i
call power(f,c,g)
j(q,w+1)=a/(b*d)*e*g
end do
end do
3 實例應(yīng)用
本文基于Bezier曲線自動繪制程序,在實例3.2與實例3.3中添加了部分程序,體現(xiàn)Bezier曲線自動繪制程序的價值所在。
3.1 翼型曲線的自動繪制
利用所編程序來繪制翼型的外形曲線,表1為某翼型控制點數(shù)據(jù),由數(shù)據(jù)分析可知該翼型為對稱翼型,通過自編程序,實現(xiàn)其自動繪制,并閉合曲線,繪制后的曲線如圖1所示。

3.2 泵性能曲線的繪制
泵段及泵裝置在試驗結(jié)束后便需要進行性能曲線的繪制,而傳統(tǒng)的手工曲線繪制方法速度比較慢,且無法保證要求,目前,泵性能曲線的繪制多基于VB、VC軟件基礎(chǔ)來開發(fā)。本文基于自行編制的Bezier曲線繪制程序來達到性能曲線自動繪制的目的,曲線更加光滑平順、便于控制,能滿足水泵汽蝕和效率的不同要求。通過該程序給出了某泵裝置的流量-揚程(Q-H)曲線(如圖2所示)、流量-效率(Q-η)曲線(如圖3所示),其余的特性曲線均可采用本程序進行繪制。

3.3 流場計算分析
以立柱繞流的流場計算為例,在該程序的基礎(chǔ)上編寫有限元分析主體程序。在曲線自動繪制基礎(chǔ)上,利用有限元法生成了立柱繞流的部分流場圖。生成好的DXF格式的模型圖,可以在任何版本的AutoCAD環(huán)境下打開觀察,具有良好的直觀性。圖4給出了部分流場的流速矢量圖。

基于AutoCAD平臺,利用Fortran語言編程,實現(xiàn)了Bezier曲線的自動繪制,讓用戶直觀地感受Bezier曲線優(yōu)良的幾何特性。通過本程序的開發(fā)對Bezier曲線的數(shù)學(xué)表達和幾何意義有了深刻的理解和直觀的認識,也對Fortran90和AutoCAD間的鏈接及編程機制、圖形處理功能建立了初步的認識。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









