版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章繪圖子程序設(shè)計一、繪圖子程序的設(shè)計準(zhǔn)則二、基本子程序的設(shè)計方法三、功能子程序的設(shè)計方法
繪圖子程序是指用計算機(jī)高級語言編寫的具有不同繪圖功能的子程序。繪圖子程序分為:基本子程序、功能子程序和應(yīng)用子程序?;咀映绦颍菏桥c繪圖設(shè)備等硬件有關(guān)的子程序。一般控制繪圖機(jī)啟動和停止,設(shè)置繪圖單位,畫直線,控制繪圖筆的抬落以及選擇繪圖筆等。功能子程序:是在基本子程序基礎(chǔ)上設(shè)計的具有某種特定繪圖功能的子程序,如畫矩形、正多邊形、橢圓等圖形。功能子程序反映不同行業(yè)繪圖的共同要求,通用性較強(qiáng)。應(yīng)用子程序:是在基本子程序和功能子程序基礎(chǔ)上設(shè)計的一些專業(yè)性較強(qiáng)的子程序,如繪制等值線圖、剖面圖、柱狀圖等的子程序。
本章主要介紹基本子程序和功能子程序;應(yīng)用子程序需根據(jù)需求編寫。
一、繪圖子程序的設(shè)計準(zhǔn)則1.子程序的通用性①盡量減少子程序?qū)τ布囊蕾囆砸蕾囆栽叫。L圖子程序的通用性就越強(qiáng),向其它計算機(jī)和繪圖設(shè)備的移植就越容易。
通用性是指繪圖子程序?qū)Χ喾N計算機(jī)和繪圖設(shè)備的適用性。②編程語言機(jī)器語言和匯編語言對硬件的依賴性較大,編寫的子程序通用性差,不便于移植。除特殊要求外,盡可能采用計算機(jī)高級語言編寫通用性強(qiáng)的繪圖子程序。2.子程序的參數(shù)一般來說,子程序中參數(shù)的多少反映了子程序功能的強(qiáng)弱;但參數(shù)過多又給用戶帶來不便。因此,在保證子程序功能的前提下,子程序中的參數(shù)應(yīng)盡可能的少。3.時間和內(nèi)存選擇合適的算法和設(shè)計思路,使子程序被調(diào)用時占用更少的運(yùn)算時間和內(nèi)存。
基本子程序是使繪圖機(jī)完成基本繪圖動作的子程序。如驅(qū)動和停止繪圖機(jī),畫直線,控制繪圖筆的抬、落以及選擇繪圖筆等動作。繪圖動作含義:
抬筆:使繪圖筆的筆尖離開紙面,準(zhǔn)備空走。
落筆:使繪圖筆的筆尖接觸紙面,準(zhǔn)備繪圖。
歸位:抬筆走到繪圖機(jī)臺面左下角的原點(diǎn)(0,0)。
選筆:選擇某一支繪圖筆,即選擇繪圖顏色。
移動:繪圖筆在繪圖范圍內(nèi)的移動。
二、基本子程序的設(shè)計方法
實(shí)現(xiàn)思路:利用高級語言的輸出語句把繪圖指令及相應(yīng)的參數(shù)寫入一個文件。繪圖儀可從該文件中依次接收相應(yīng)的繪圖指令并根據(jù)提供的參數(shù)值完成繪圖動作。
對于不同的繪圖儀,生產(chǎn)廠家一般都提供了相應(yīng)的繪圖指令,用于驅(qū)動繪圖儀完成繪圖動作。
繪圖指令格式為:繪圖指令(字符)+參數(shù)可以在基本子程序中使用各種繪圖指令,實(shí)現(xiàn)不同的繪圖動作。
如何設(shè)計繪圖基本子程序來控制繪圖動作呢?1.繪圖儀的繪圖指令、基本子程序設(shè)計
以DXY-1100平板繪圖儀為例介紹繪圖指令、相應(yīng)的基本子程序編寫方法。筆架筆夾
⑴繪圖儀初始化子程序
指令格式:M0,0
(M是繪圖指令,代表抬筆移動;0,0是參數(shù)值,代表坐標(biāo)原點(diǎn))
功能:使繪圖儀連通、繪圖筆夾自動取出1號繪圖筆并抬筆將繪圖筆移至坐標(biāo)原點(diǎn)(0,0)點(diǎn)。是每次使用繪圖儀之前都必須進(jìn)行的準(zhǔn)備動作。
子程序編寫為:
subroutinein
character*12fm
write(*,'(a)')'Enterplotterfilename:'
read(*,'(a)')fm
open(11,file=fm)
write(11,111)'M0,0'
111format(1x,a)
end(文件名.PLT或plt)
調(diào)用方法:編寫主程序調(diào)用子程序,即CALL
in。將主程序、子程序編譯、連接后即可運(yùn)行。運(yùn)行結(jié)果是在硬盤上產(chǎn)生了一個包含字符串M0,0的文本文件。
等同于C語言中編寫一個把字符串M0,0寫入文本文件的函數(shù)。(fm為存放繪圖指令的文件名)
⑵繪圖筆歸位子程序
指令格式:H
(無參數(shù))功能:結(jié)束繪圖,把畫筆放回筆架,并使筆夾歸位到坐標(biāo)原點(diǎn)(0,0)。subroutinehome(子程序名)
write(11,111)
111format(1x,′H′)(命令)
end
⑶絕對抬筆移動子程序
指令格式:Mx,
y
(與繪圖初始化的指令相同)其中x,
y是點(diǎn)的絕對坐標(biāo)(以左下角坐標(biāo)原點(diǎn)為基準(zhǔn)),是實(shí)型參數(shù)。
功能:從繪圖筆當(dāng)前位置抬筆移動到點(diǎn)(x,
y)處。subroutinemovea(x,y)
write(11,111)x
,y
111format(1x,′M′,f8.3,′,′,f8.3)
end
(5,5)圖2-1
如圖2-1,若繪圖筆當(dāng)前位置為(0,0),要抬筆移動到點(diǎn)(5,5),利用絕對抬筆移動子程序?qū)崿F(xiàn)。
下面是個絕對抬筆移動的例子。
若再執(zhí)行一次CALLmovea(0.,0.)?
實(shí)現(xiàn)方法:CALLmovea(5.,5.)
⑷絕對落筆畫線子程序
指令格式:
Dx,
y
其中x,
y是點(diǎn)的絕對坐標(biāo)。
功能:從繪圖筆當(dāng)前位置落筆畫線到點(diǎn)(x,y)
subroutinelinea(x,y)
write(11,111)x
,y111format(1x,′D′,f8.3,′,′,f8.3)
end
⑸相對落筆畫線子程序
指令格式:Ix,y
其中x,
y是相對坐標(biāo)(以繪圖筆當(dāng)前位置為坐標(biāo)原點(diǎn)的坐標(biāo))
功能:從繪圖筆當(dāng)前位置抬筆移動到點(diǎn)(x,
y)處。
(程序略)
功能:以繪圖筆當(dāng)前位置為坐標(biāo)原點(diǎn),抬筆移動到指定位置。
⑹相對抬筆移動子程序
指令格式:
Rx,y
(程序略)
⑺選擇繪圖筆子程序
功能:使繪圖儀取出指定的繪圖筆。
指令格式:
Jn
(n=1~8,對應(yīng)8支不同顏色的繪圖筆,默認(rèn)值為n=1)
⑻畫坐標(biāo)軸子程序
其中,X是繪圖指令,np,q,r是參數(shù)。
np=0時畫y軸,np=1時畫x軸。q~軸上兩條刻度線間的距離。r~軸上刻度線的重復(fù)次數(shù)。
功能:從繪圖筆當(dāng)前位置起繪制x軸或y軸。
指令格式:
Xnp,q,r
⑼選擇線型子程序
指令格式:①Bi②Lk
其中B、L是指令,i、k是參數(shù)。
功能:使繪圖筆按某種線型(實(shí)線,虛線)畫線。
指令L的功能是定義線型是實(shí)線還是虛線;當(dāng)k=0畫實(shí)線,k=1畫虛線。指令B的功能是確定虛線的畫法;按參數(shù)i(0<i≤255)
值的大小畫線,落筆畫線長度為i值一半,抬筆移動距離為i值另一半。
i
的默認(rèn)值為30,即3㎜(最小繪圖單位為0.1㎜)。
⑽畫圓弧子程序a1a2圖2-6x,y~圓心坐標(biāo);
r~圓的半徑;、~圓弧起始和終止的角度(度),x軸正向?yàn)?度(圖2-6)。
功能:使繪圖筆按給定的參數(shù)逆時針繪圓弧。
指令格式:Cx,y,r,a1,a2⑾設(shè)置繪圖單位子程序
功能:使繪圖儀按給定的坐標(biāo)參數(shù)設(shè)置繪圖度量單位。要用到^IP和^SC兩個指令。
指令格式:^IPp1x,p1y,p2x,p2y
;
^SCq1x,q2x,q1y,q2y
;
指令^IP的功能:按默認(rèn)單位給出繪圖區(qū)域的左下角原點(diǎn)坐標(biāo)和右上角坐標(biāo),從而確定繪圖區(qū)域大?。ǚ秶?。
p1x,p1y~繪圖區(qū)域的左下角原點(diǎn)坐標(biāo)(0,0)。
p2x,p2y~按默認(rèn)單位(0.1㎜),繪圖區(qū)域的右上角坐標(biāo)(4000,2700)。(p1x,p1y)(p2x,p2y)確定區(qū)域大小(范圍)
指令^SC的功能:重新設(shè)置繪圖區(qū)域的左下角原點(diǎn)坐標(biāo)和右上角坐標(biāo),從而確定新的繪圖單位。
q1x,q1y~繪圖區(qū)域的左下角原點(diǎn)坐標(biāo)(0,0)。
q2x,q2y~重新設(shè)置的繪圖區(qū)域右上角坐標(biāo),如:(40,27)。
因此,上述兩個指令結(jié)合起來的含義是:在相同的繪圖范圍內(nèi),用一個新的繪圖單位取代默認(rèn)的繪圖單位。(q1x,q1y)(q2x,q2y)區(qū)域大小相同,但度量單位不同
對于DXY-1100繪圖儀,繪圖范圍如圖2-7所示:(40,27)2700(默認(rèn))4000(默認(rèn))40(新)27(新)繪圖區(qū)域(0,0)(4000,2700)圖2-7DXY-1100繪圖儀繪圖范圍示意圖
默認(rèn)單位中的1代表0.1mm。新單位中的1代表1cm。^IP0
,0
,4000,2700;
^SC0
,0
,40,27;⑿繪制字符串子程序
功能:繪制給定的一個符號串。要用到指令^SI、^DI、^LB三條指令。
指令格式:
①^SIw,h;
功能:以㎝為單位指定字符的大??;參數(shù)w、h分別代表字符的寬度和高度。
②^DIrun,rise;
功能:指定字符的輸出角度;run、rise是控制字符角度的參數(shù),設(shè)字符輸出角度為a,則run=cos(a),rise=sin(a)。角度a是從x軸正向開始,逆時針方向的角度,單位為弧度。
③^LBchars,char(3);
功能:輸出一個字符串,以結(jié)束符終止;參數(shù)chars是要輸出的字符串,char(3)是一個字符常量,代表結(jié)束符。綜合上述三條指令可編寫繪制字符串子程序。
至此,介紹了DXY-1100繪圖儀的12條繪圖指令及相應(yīng)的基本子程序設(shè)計思路。在使用其他繪圖設(shè)備時,根據(jù)相應(yīng)的繪圖指令,我們可采用相同的方法編寫基本子程序。
Surfer軟件提供了類似平板繪圖儀的功能,提供的一些指令可以在屏幕上畫圖。我們可以根據(jù)相應(yīng)的指令設(shè)計出基本子程序,并在Surfer環(huán)境下運(yùn)行。既把生成的繪圖文件在Surfer環(huán)境下顯示出來,同時可打印輸出。
Surfer環(huán)境下的繪圖指令與DXY-1100繪圖儀的指令略有不同,但編寫方法完全相同;共有10個繪圖基本子程序。⑴初始化子程序
in
⑵選繪圖筆子程序pen(n)
n為筆號,取值為1~16。⑶設(shè)置繪圖單位子程序fact(a)
當(dāng)a=10.0時,單位為㎝;當(dāng)a=1.0時,單位為mm。⑷絕對抬筆移動子程序movea(x,y)⑸相對抬筆移動子程序mover(x,y)⑹絕對落筆畫線子程序linea(x,y)⑺相對落筆畫線子程序liner(x,y)2.Surfer環(huán)境下的繪圖基本子程序
⑻繪制實(shí)型數(shù)子程序numb1(x,y,h,a,f)
x,y是實(shí)數(shù)輸出的坐標(biāo)位置,h為每個數(shù)的高度,這3個參數(shù)的單位由繪圖單位決定;
a為輸出角度(角度);f為要輸出的實(shí)型數(shù)。⑼繪制整型數(shù)子程序numb2(x,y,h,a,i)
i為要輸出的整型數(shù)。⑽繪制字符串子程序text(x,y,h,a,asc)
asc為要輸出的字符串。上述子程序的具體內(nèi)容見教材p50~53。
功能子程序:是在基本子程序基礎(chǔ)上設(shè)計的具有某種特定繪圖功能的子程序。
1.繪正多邊形功能子程序設(shè)正多邊形的邊數(shù)為n,其外接圓的圓心坐標(biāo)為(x0
,y0),半徑為r,a是正多邊形起點(diǎn)Ps到圓心連線與x軸正向的夾角(度)。
三、功能子程序的設(shè)計方法(x0,y0)PsP1P2P3a
繪圖思路:在外接圓上找出正多邊形各頂點(diǎn)的坐標(biāo),并依次用直線連接。⑶各頂點(diǎn)坐標(biāo)為:⑵正多邊形各邊頂點(diǎn)與圓心連線的夾角b=2π/n
。⑴外接圓的參數(shù)方程:
x=x0+rcos(t)
y=y0+rsin(t)
(0≤t≤2π)(x0,y0)PsP1P2P3abxs=x0+rcos(a)ys=y0+rsin(a)Ps:x1=x0+rcos(a+b)y1
=y0+rsin(a+b)P1:x2=x0+r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 19876-2012機(jī)械安全 與人體部位接近速度相關(guān)的安全防護(hù)裝置的定位》專題研究報告
- 《GB-T 39344-2020空間數(shù)據(jù)與信息傳輸系統(tǒng) 通信操作規(guī)程-1》專題研究報告
- 《GB-T 10514-2012硝酸磷肥中游離水含量的測定 烘箱法》專題研究報告
- 《儲能材料與器件分析測試技術(shù)》課件-SEI膜
- 《寵物鑒賞》課件-另類寵物之嚙齒類寵物
- Tiamo-basical-configuration參考資料說明
- 月嫂育兒技能培訓(xùn)協(xié)議
- 智能家居醫(yī)修師崗位招聘考試試卷及答案
- 種子行業(yè)有機(jī)種子研發(fā)工程師崗位招聘考試試卷及答案
- 2026醫(yī)院護(hù)理部工作計劃范文(6篇)
- 信息安全供應(yīng)商培訓(xùn)課件
- 9.3《聲聲慢》(尋尋覓覓)課件+2025-2026學(xué)年統(tǒng)編版高一語文必修上冊
- 七年級數(shù)學(xué)數(shù)軸上動點(diǎn)應(yīng)用題
- 自主導(dǎo)航移動機(jī)器人 (AMR) 產(chǎn)業(yè)發(fā)展藍(lán)皮書 (2023 版)-部分1
- 典型事故與應(yīng)急救援案例分析
- 數(shù)字鄉(xiāng)村綜合解決方案
- 豬肉推廣活動方案
- 電工職業(yè)道德課件教學(xué)
- 學(xué)堂在線 雨課堂 生活英語聽說 期末復(fù)習(xí)題答案
- 第十四屆全國交通運(yùn)輸行業(yè)“大象科技杯”城市軌道交通行車調(diào)度員(職工組)理論知識競賽題庫(1400道)
- 2025年希望杯IHC真題-二年級(含答案)
評論
0/150
提交評論