專利名稱:二次曲線的高效繪圖法的制作方法
技術領域:
本發(fā)明屬于計算機圖形學(ComputerGraphics),特別是涉及計算機輔助設計(ComputerAidedDesign,簡寫CAD),計算機圖形編輯、圖形輸入技術領域。
在計算機繪圖、計算機輔助設計、計算機標圖等領域都要用到圖形輸入、圖形編輯。目前,當用戶在屏幕上進行圖形編輯、圖形輸入時,都要告知計算機有關各種圖形的參數(shù)。英國愛丁堡大學目前使用的圖形工作站系統(tǒng)中,用戶繪制橢圓時需要從鍵盤上輸入橢圓的圓心坐標、長軸和短軸的長度,橢圓的方向角度,這些參數(shù)都是數(shù)字量,用戶需要準確地知道這些參數(shù),需要進行很多的操作,才能將這些數(shù)據(jù)輸入計算機,而且在操作過程中不能有誤,因此,使用該系統(tǒng),操作過程繁雜;另外,這種作圖方法很不直觀,且不易修改,這種作圖方法不符合人畫橢圓的習慣思維。因為在很多場合,用戶無需預置橢圓的參數(shù),就能畫出一個合適的橢圓。人在畫一個橢圓的時候并沒有明確意識到橢圓的圓心位置、長短軸的長度及方向角這樣的概念,而只是在腦海中有一個橢圓的大體形狀而已。此外,愛丁堡大學的圖形系統(tǒng)尚沒有向用戶提供直接繪制曲線的手段。
代表著世界計算機領先水平的Apple公司為其Macintosh計算機上配備的圖形系統(tǒng)中,橢圓、曲線的作圖手段與英國愛丁堡大學使用的系統(tǒng)類似。
美國Autodesk公司推出的商品化的CAD計算機輔助設計系統(tǒng)AutoCAD中依然只提供了直接畫橢圓的手段,而沒有直接作曲線的繪圖手段。
在AutoCAD中提供了三種繪制橢圓的方法1、已知一個軸的兩個端點位置,另一個軸的半長度。
2、已知一個軸的兩個端點,以這一軸作圓再繞其旋轉一定角度。
3、已知橢圓的中心和兩個端點。
這些方法都要用戶以數(shù)字形式將坐標參數(shù)輸入,因此,尚有上述種種缺陷。
在AutoCAD中沒有提供直接畫曲線的方法。用戶需要繪出~條曲線只能通過折線與圓弧拼接。它是由計算機計算出各種圓弧逼近,所以,效果往往不理想。為此,AutoCAD提供了頂點編輯(EditVertex)功能,用來修改切線方向或改變頂點的位置,再重新進行擬合。因而用戶想畫一條曲線所要進行的工作是非常煩瑣的。不僅如此,由于它只用圓弧去擬合曲線,曲線的精度與光滑度是無法保證的,況且在處理工作中非常費時。
《計算機時代》1991年第一期刊出浙江大學CAD&CG(計算機輔助設計與計算機圖形學)國家重點實驗室羅國明的文章,介紹了一種交互圖形編輯技術,該技術可以繪制直線,但沒有橢圓繪制法。對于曲線,則需要用戶在屏幕上畫出折線,然后通過各種選擇,對折線進行樣條曲線擬合,因而曲線的精度和光滑度亦無法保證。
本發(fā)明的目的在于提供一種用計算機繪制橢圓及二次曲線的方法,以解決目前橢圓與曲線繪圖操作方法上的缺陷。本發(fā)明的方法方便、直觀,使用戶和計算機獲得高效的人機交互功能,能保證曲線的精度和光滑度。
本發(fā)明的設計思想是在繪制一個橢圓時,并不要求用戶直接輸入數(shù)值參數(shù),即在用戶不知道或無需知道橢圓的具體參數(shù)時,計算機應該能夠繪出一個供用戶自由調(diào)節(jié)大小、方位的橢圓,這樣,用戶確定橢圓的方式就符合人用筆在紙上畫圖的習慣。
在繪制一條曲線時,舍棄了讓用戶先畫折線再進行擬合的方法,曲線是一次完成。要求用戶定出的是曲線上的一些點,且允許用戶隨時調(diào)節(jié)、控制曲線的形狀。
以下結合附圖詳細闡述本發(fā)明的思想方法。
圖1是橢圓軸的繪制示意2是橢圓的繪制示意3是曲線的繪制示意4.1、圖4.2是用計算機繪制橢圓的畫法流程5.1、圖5.2是用計算機繪制曲線的畫法流程1中P1點為第一操作點,P2為第二操作點,兩點的坐標分別為(x1,y1)、(x2,y2)。為產(chǎn)生一個直線P1P2,就要計算出P1P2上各個點的坐標。如果用N個點來表示虛直線,則只需計算該直線中N個點。設P為要計算點,其坐標為(x,y),則直線的參數(shù)方程為
其中t=|PP1|/|P1P2|,0≤t≤1。使t=0開始,步長為1/N,即可計算出直線上N個點的坐標,由此可得出一直線。要想改變直線P1P2的長短、方向,只需改變P2點的位置,則可得出新的直線。這樣橢圓的一個軸及方向角就得以確定。
在此基礎上,可方便地給出橢圓的中心點O。在圖2中,O點的坐標為
點(x0,y0)由計算機提供給用戶。在圖4.1中,給出了繪制橢圓軸的計算機程序框圖。
選橢圓上一點P3,其坐標為(x3,y3),為繪制橢圓,就要計算出橢圓上任意一點P(x,y)的坐標值。
以θ為橢圓軸與x軸的夾角,0≤θ≤π,以參數(shù)t表示OP與x的夾角,0≤t≤2π,則橢圓的參數(shù)方程為
其中
(b的分母有意義則橢圓存在)a、b、θ的數(shù)值由計算機提供給用戶。在圖4.2中,給出了繪制完整橢圓的計算機程序框圖。
使t=0開始,步長為2π/N,即可畫出橢圓上的N個點,構成虛線橢圓。改變P3點的坐標,就可改變橢圓的偏平程度。
用本坐標的上述方法形成橢圓時,t的步長△t由下式確定△t=2π/(max(a,b)×μ)由此求得橢圓上的max(a,b)×μ個點,μ值一般取2~6,由此畫一組折線來逼近橢圓,獲得良好的精度和光滑度。
曲線的形成方法圖3中,為了繪制二次曲線,現(xiàn)有技術需要給出P0、P1、P2、P3點,這幾個點均不在曲線上,且無法連續(xù)作圖。
本發(fā)明選取曲線拐點Q0、Q1、Q2、Q3來形成曲線。
由二次B樣條曲線的性質(zhì)可知P0=Q0P1=2Q1-Q0P2=2Q2-2Q1+Q0于是,Q1Q2上任意一點P(x,y)為
=2Q0(t2-t)-Q1(3t2-2t-1)+Q2t2其中0≤t≤1,t是歸一化參數(shù)。這樣,P點的坐標為
令t=0開始,步長△t=1/N,即可計算出Q1Q2曲線上N個點形成曲線,改變Q2點,則曲線Q1Q2的形狀即可變化,畫出新的曲線。
當Q2點確定以后,可取步長△t=μ/(|P1Q1|+|P1Q2|),μ可選取1~2,計算出1/△t個點,將這些點用折線連接,可保證足夠的精度。
當Q1Q2確定以后,可再選Q3,依此畫出所需曲線。
圖5.1和5.2給出了繪制曲線的計算機程序框圖。
實現(xiàn)本發(fā)明方法的所有程序都可用Pascal或C語言編寫,以8086系列的匯編語言編寫的實時性最好,效果最佳。圖4.1、圖4.2、圖5.1、圖5.2中“以異或的方式畫點”可使用ROMBIOSINT10H的中斷調(diào)用,也可使用自己編寫的匯編語言程序,這樣效果最好。若使用高級語言編寫程序,畫直線可使用高級語言提供的子程序,如使用匯編語言編寫程序,畫直線的子程序要自己編寫。
本發(fā)明可在大多數(shù)IBMPC/XT/AT及386/486微機的圖形控制卡上實現(xiàn)。為提高程序的實時性,使用數(shù)學協(xié)處理器進行浮點運算。
本發(fā)明的繪圖方法符合人的習慣,作圖直觀,簡單,人機交互非常方便。
本發(fā)明充分考慮了人與計算機各自的優(yōu)勢,充分發(fā)揮人的形象思維與智能決策的優(yōu)勢,按照人的習慣選擇圖形參數(shù),而在計算機進行復雜的數(shù)學推導與求解。因此,在目前各種CAD及繪圖系統(tǒng)中,用本發(fā)明提供的方法,可提高系統(tǒng)的效率,降低人的勞動強度。
權利要求
1.一種用計算機繪制二次曲線的方法,其特征在于(a)繪制橢圓可選擇一個軸的兩個端點和橢圓上的任意一點,即可形成任意方向的橢圓;(b)繪制二次曲線,只需給出曲線的拐點,即可繪出連續(xù)光滑的曲線。
2.根據(jù)權利要求1所述的方法,其特征在于用折線逼近橢圓時,折線的頂點和橢圓圓心形成的連線與起始位置夾角(t)的增量(△t)等于2π除以參數(shù)(μ)與長軸的乘積。
3.根據(jù)權利要求1所述的方法,其特征在于用折線逼近曲線時,歸一化參數(shù)(t)的增量(△t)為參數(shù)(μ)除以相鄰兩拐點與本段曲線特征多邊形的頂點構成的折線的長度。
4.根據(jù)權利要求2所述的方法,其特征在于參數(shù)(μ)的取值在2至6之間。
5.根據(jù)權利要求3所述的方法,其特征在于參數(shù)(μ)的取值在1~2之間。
全文摘要
本發(fā)明屬于計算機圖形學,特別是涉及計算機輔助設計,計算機圖形編輯和圖形輸入技術領域。本發(fā)明從人機交互觀點出發(fā),給出橢圓和二次曲線繪制的參數(shù)選取方法,可用計算機繪制出任意方向、大小的橢圓和任意走向光滑連續(xù)的二次曲線。本發(fā)明給出用折線逼近曲線時的參數(shù)值可保證不同大小的圖形都具有較高的精度,繪圖方便、直觀。
文檔編號G06F3/13GK1079316SQ92104040
公開日1993年12月8日 申請日期1992年5月23日 優(yōu)先權日1992年5月23日
發(fā)明者秦桉 申請人:西安電子科技大學