999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab的交互式圖形變換教學(xué)方法研究

2019-06-12 01:13:54劉曉婷
實(shí)驗(yàn)室研究與探索 2019年5期
關(guān)鍵詞:學(xué)生

朱 斌,劉曉婷,曲 孟

(長安大學(xué) 公路養(yǎng)護(hù)裝備國家工程實(shí)驗(yàn)室,西安 710064)

0 引 言

圖形變換是將幾何圖形按照某種法則或規(guī)律變成另一種幾何圖形的過程,它是CAD/CAM和計(jì)算機(jī)圖形學(xué)等課程的重要教學(xué)內(nèi)容[1-4],也是學(xué)生學(xué)習(xí)和理解CAD基本原理的基礎(chǔ),其算法具有廣泛的工業(yè)應(yīng)用[5-8]。該內(nèi)容兼顧理論性和實(shí)踐性,在傳統(tǒng)的圖形變換教學(xué)中,矩陣運(yùn)算是其主要內(nèi)容,教師在授課過程中經(jīng)常需要把大量的時(shí)間花費(fèi)在矩陣的各種推導(dǎo)和計(jì)算上,而對圖形變換的原理和變換過程無法直觀演示,缺少必要的軟件實(shí)驗(yàn)環(huán)節(jié),學(xué)生難以領(lǐng)會和掌握圖形變換的算法和實(shí)現(xiàn)技巧[9]。

為使學(xué)生深入理解圖形變換的基本原理和實(shí)現(xiàn)方法,課題組經(jīng)多年教學(xué)探索和實(shí)踐,提出了基于模塊化程序設(shè)計(jì)思想和Matlab軟件的圖形變換教學(xué)方法,并開發(fā)了相應(yīng)的Matlab程序,該程序可直觀、形象地展示平移、旋轉(zhuǎn)、比例等基本幾何變換和更為復(fù)雜的復(fù)合變換。學(xué)生通過上機(jī)實(shí)驗(yàn),可交互式完成各種圖形變換。此外,在此基礎(chǔ)上學(xué)生還可以結(jié)合自己的學(xué)習(xí)興趣進(jìn)行多種拓展練習(xí),形成理論與實(shí)踐互動。實(shí)踐表明,該方法的應(yīng)用有助于提高學(xué)習(xí)積極性、培養(yǎng)學(xué)習(xí)興趣,深入理解和掌握圖形變換的基本原理和實(shí)現(xiàn)方法。

1 Matlab圖形變換原理與流程

Matlab是美國MathWorks公司于1984年推出的商業(yè)數(shù)學(xué)軟件,是matrix&laboratory兩個(gè)詞的組合,即矩陣實(shí)驗(yàn)室。該軟件具有強(qiáng)大的數(shù)值分析、矩陣運(yùn)算等功能,已成為大學(xué)教學(xué)和科研中必不可少的工具之一[10-11]。采用Matlab軟件實(shí)現(xiàn)圖形變換的流程介紹如下。

1.1 圖形變換基本原理

圖形變換主要包括二維圖形幾何變換和三維圖形幾何變換。變換的圖形可視為點(diǎn)的集合,變換的實(shí)質(zhì)是對組成圖形的各個(gè)頂點(diǎn)進(jìn)行坐標(biāo)變換[1]。二維圖形的變換過程可表示為[9]:

(x,y,1)T=(x′,y′,1)

(1)

式中:(x,y,1)為變換前點(diǎn)的坐標(biāo);(x′,y′,1)為變換后點(diǎn)的新坐標(biāo);T為基本變換矩陣。

由式(1)可以看出,圖形變換的關(guān)鍵在于變換矩陣的構(gòu)造,二維圖形的基本幾何變換可通過圖形的頂點(diǎn)坐標(biāo)與基本變換矩陣乘積得到;而復(fù)合變換可由若干個(gè)簡單的基本幾何變換組合得到。其中,基本幾何變換的類型主要有:比例變換、對稱變換、平移變換、旋轉(zhuǎn)變換等[12],如表1所示。

表1 二維圖形的基本幾何變換矩陣

上述變換矩陣可分為兩類:①變換矩陣中不包含變換參數(shù),即變換過程中不需要用戶輸入?yún)?shù),如:對稱變換;②變換矩陣中包含變換參數(shù),即在變換過程中需要用戶輸入必要的變換參數(shù),如:比例變換中的比例因子、旋轉(zhuǎn)變換的旋轉(zhuǎn)角度、平移變換中的平移量等。依據(jù)上述變換矩陣的形式,采用模塊化程序設(shè)計(jì)思想,可將基本變換矩陣構(gòu)造為相應(yīng)的Matlab函數(shù),在函數(shù)內(nèi)部進(jìn)行變換計(jì)算,程序變更也只在函數(shù)內(nèi)部進(jìn)行,不影響其他模塊,保證程序具有一定的靈活性和開放性,有助于學(xué)生在此基礎(chǔ)上進(jìn)行各種拓展學(xué)習(xí)。

1.2 基本變換矩陣函數(shù)的構(gòu)造

按照模塊化設(shè)計(jì)思想,對不需要輸入?yún)?shù)的對稱變換可定義為Matlab的一個(gè)無參數(shù)函數(shù),如對x軸對稱的變換函數(shù)可定義為:

!X軸對稱變換函數(shù) Transformation_X.m

function Transformation_X()

global Points;!定義全局坐標(biāo)點(diǎn)集矩陣;

Tsx=zeros(3,3);!定義3×3全0矩陣;

Tsx(1,1)=1;!設(shè)置(1,1)元素為1;

Tsx(2,2)=-1;!設(shè)置(2,2)元素為-1;

Tsx(3,3)=1;!設(shè)置(3,3)元素為1;

Points=(Points'*Tsx)';

!原點(diǎn)集與變換矩陣相乘得到新點(diǎn)集;

對于需要輸入?yún)?shù)的變換,同樣可在Matlab中定義為一個(gè)無參數(shù)函數(shù),在調(diào)用該函數(shù)時(shí),彈出提示,要求用戶以交互的方式輸入相應(yīng)的參數(shù),如下面的旋轉(zhuǎn)變換函數(shù):

!旋轉(zhuǎn)變換函數(shù) Transformation_R.m

function Transformation_R()

global Points;!定義全局坐標(biāo)點(diǎn)集矩陣;

a=input('請輸入旋轉(zhuǎn)角度(逆時(shí)針):');

!彈出提示,輸入后賦值給變量a;

T2=zeros(3,3);

T2(1,1)=cosd(a);

T2(1,2)=sind(a);

T2(2,1)=-sind(a);

T2(2,2)=cosd(a);

T2(3,3)=1;

Points=(Points'*T2)';

! 原點(diǎn)集與變換矩陣相乘得到新點(diǎn)集;

其他基本變換可以采用相同方式定義為相應(yīng)的函數(shù),并放在指定目錄下供主程序調(diào)用。

1.3 圖形基本變換的實(shí)現(xiàn)

將基本變換矩陣定義為Matlab函數(shù)后可實(shí)現(xiàn)各種基本變換。以三角形的基本幾何變換為例,程序的處理流程如圖1所示。

圖1 圖形基本變換處理流程

其中,畫三角形函數(shù)為根據(jù)3個(gè)點(diǎn)的坐標(biāo)值畫出相應(yīng)的三角形,變換前和變換后均調(diào)用該函數(shù),定義好后同樣將該函數(shù)放到指定的目錄下供主程序調(diào)用。畫三角形函數(shù)為:

!畫三角形函數(shù) Draw3Points.m

function Draw3Points(x1,x2,x3,y1,y2,y3)

line([x1,x2],[y1,y2]);!連接點(diǎn)1和點(diǎn)2;

line([x1,x3],[y1,y3]);!連接點(diǎn)1和點(diǎn)3;

line([x2,x3],[y2,y3]);!連接點(diǎn)2和點(diǎn)3;

text(x1,y1,'A');!標(biāo)注點(diǎn)1為A;

text(x2,y2,'B');!標(biāo)注點(diǎn)2為B;

text(x3,y3,'C');!標(biāo)注點(diǎn)3為C;

在此基礎(chǔ)上,學(xué)生可根據(jù)需要進(jìn)行各種拓展練習(xí),自行設(shè)計(jì)出任意的圖形,如:T字形、任意四邊形等,并寫成函數(shù)形式,在主程序中直接調(diào)用。

1.4 復(fù)合變換的實(shí)現(xiàn)

CAD/CAM中的圖形變換過程是復(fù)雜的,往往用一種基本變換不能實(shí)現(xiàn),必須由兩種或多種基本變換的組合才能得到所需的最終變換圖形,這種復(fù)合變換所對應(yīng)的變換矩陣稱為復(fù)合變換矩陣[1],可表示為多個(gè)基本變換的乘積,即:

T=T1T2Tn

(2)

式中:T1,T2,…,Tn為基本變換矩陣。

根據(jù)復(fù)合變換的變換原理,在圖形基本變換的基礎(chǔ)上可通過交互的方式實(shí)現(xiàn)復(fù)合變換,具體流程如圖2所示。

圖2 圖形的復(fù)合變換流程

按構(gòu)成復(fù)合變換的基本變換矩陣順序輸入,如要求繞任意點(diǎn)A旋轉(zhuǎn)α角的變換圖形,按照復(fù)合變換原理,其基本變換矩陣組合為:

T=T平T轉(zhuǎn)T-平

(3)

對上述變換,根據(jù)圖2所示,用戶按順序輸入(2,7,2),其中2、7分別表示平移變換和旋轉(zhuǎn)變換,并注意以逗號分割。主程序執(zhí)行時(shí)將按輸入的順序依次執(zhí)行平移和旋轉(zhuǎn)變換函數(shù),并提示輸入相應(yīng)的平移量和旋轉(zhuǎn)角度等參數(shù)值。

2 應(yīng)用實(shí)例

2.1 圖形基本變換應(yīng)用

以三角形變換為例,在Matlab中運(yùn)行主程序,當(dāng)運(yùn)行到需要輸入變換類型時(shí)會彈出如下提示:

請輸入基本變換類型,1-比例;2-平移、3-對x軸對稱;4-對y軸對稱;5-對+45°線對稱;6-對-45°線對稱;7-旋轉(zhuǎn):______。

圖3為輸入不同類型變換后的運(yùn)行結(jié)果。

圖3 輸入不同類型變換后的運(yùn)行結(jié)果

2.2 復(fù)合變換運(yùn)行實(shí)例

由復(fù)合變換原理可知,圖形的復(fù)合變換是若干個(gè)基本變換的組合,且矩陣組合順序要符合變換規(guī)律,即基本變換矩陣應(yīng)按照變換順序輸入。仍以三角形變換為例,圖4所示為三角形繞點(diǎn)(0,3)旋轉(zhuǎn)90°的變換結(jié)果。按照圖2所示變換流程,復(fù)合變換矩陣T=T2T7T-2,即輸入(2,7,2),主程序?qū)⒀h(huán)調(diào)用平移、旋轉(zhuǎn)和平移3個(gè)函數(shù)。當(dāng)?shù)?次平移變換函數(shù)被調(diào)用時(shí),會提示輸入平移變換的平移量,即:x方向平移量為0;y方向平移量為-3;第2次循環(huán)調(diào)用旋轉(zhuǎn)變換函數(shù),輸入旋轉(zhuǎn)角度90°,最后再次調(diào)用平移變換函數(shù),并輸入x和y方向的平移量,分別為0和3。最終變換結(jié)果見圖4。圖5所示為三角形沿直線x+y=2對稱的變換結(jié)果,該復(fù)合變換矩陣為T=T2T7T3T-7T-2,需要依次進(jìn)行平移、旋轉(zhuǎn)、對稱、旋轉(zhuǎn)、平移共5次基本變換,對T2變換輸入:x方向平移量-2,y方向平移量0;T7輸入旋轉(zhuǎn)角度45;T3沿x軸對稱,無輸入;T-7輸入旋轉(zhuǎn)角度-45;T-2輸入x方向平移量2,y方向平移量0,最終變換結(jié)果如圖5所示。

圖4 繞(0,3)點(diǎn)旋轉(zhuǎn)90°的變換結(jié)果圖5 沿與直線x+y=2對稱變換結(jié)果

3 拓展學(xué)習(xí)

在本文的實(shí)現(xiàn)思路和程序框架基礎(chǔ)上,學(xué)生可結(jié)合自己的興趣進(jìn)一步開展以下內(nèi)容學(xué)習(xí):

(1)變換圖形由三角形改變?yōu)槠渌麍D形,如:T字形、任意四邊形等;按照本文提供的畫三角形函數(shù)的方法,可指導(dǎo)學(xué)生將三角形改寫為T字形、任意四邊形或其他直線圖形等函數(shù)形式。

(2)按照該方法的實(shí)現(xiàn)框架和方法可進(jìn)行三維圖形的幾何變換[13-15];按照二維圖形的幾何變換思路,可指導(dǎo)學(xué)生進(jìn)行三維圖形的幾何變換,將二維圖形基本變換矩陣構(gòu)造為4×4階變換矩陣,掌握矩陣不同元素對變換的影響。同樣寫成Matlab函數(shù)形式,具體實(shí)現(xiàn)方法與二維相同。

(3)進(jìn)行非直線圖形的變換練習(xí),如:圓、橢圓、拋物線、圓弧等。在CAD/CAM或圖形學(xué)等教材中,均未介紹非直線圖形的幾何變換,但借助本文的思路,將畫三角形函數(shù)進(jìn)行適當(dāng)改造,同樣可以實(shí)現(xiàn)圓、拋物線等非直線圖形的圖形變換。

4 結(jié) 語

課題組多年的實(shí)踐表明,該方法的應(yīng)用有助于提高學(xué)習(xí)積極性、培養(yǎng)學(xué)習(xí)興趣,深入理解和掌握圖形變換的基本原理和實(shí)現(xiàn)方法。可達(dá)到以下目標(biāo):①有助于學(xué)習(xí)和掌握圖形變換的基本原理和實(shí)現(xiàn)方法;②理解和掌握CAD軟件的基本實(shí)現(xiàn)過程和開發(fā)方法;③通過圖形變換的學(xué)習(xí),提高M(jìn)atlab軟件的應(yīng)用技能和解決問題的能力。

猜你喜歡
學(xué)生
快把我哥帶走
親愛的學(xué)生們,你們并沒有被奪走什么
英語文摘(2020年9期)2020-11-26 08:10:12
如何喚醒學(xué)生自信心
甘肅教育(2020年6期)2020-09-11 07:45:16
怎樣培養(yǎng)學(xué)生的自信
甘肅教育(2020年22期)2020-04-13 08:10:54
如何加強(qiáng)學(xué)生的養(yǎng)成教育
甘肅教育(2020年20期)2020-04-13 08:04:42
“學(xué)生提案”
《李學(xué)生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學(xué)生
學(xué)生寫話
學(xué)生寫的話
主站蜘蛛池模板: a级毛片一区二区免费视频| 奇米精品一区二区三区在线观看| 亚洲AV无码乱码在线观看裸奔| 国产最新无码专区在线| 国产男女XX00免费观看| 亚洲欧美h| 成人一级免费视频| 国产乱子伦手机在线| 欧美日韩一区二区三区四区在线观看| 中文字幕欧美成人免费| a级毛片免费在线观看| 午夜高清国产拍精品| 亚洲人成网7777777国产| 国产成人高清精品免费| 欧美视频在线第一页| 亚洲伊人久久精品影院| 亚洲熟妇AV日韩熟妇在线| 中文字幕第4页| 国产后式a一视频| 亚洲成人www| 亚洲人成影视在线观看| 国产视频只有无码精品| 波多野结衣久久精品| 亚洲第一成网站| 男女男免费视频网站国产| 无码又爽又刺激的高潮视频| 91亚洲国产视频| 亚洲成A人V欧美综合| 色国产视频| 色成人综合| 久久亚洲国产一区二区| 999精品免费视频| 不卡国产视频第一页| 欧美国产成人在线| 欧美特级AAAAAA视频免费观看| 国产欧美日韩在线一区| 久久女人网| 国产91高跟丝袜| 中国一级特黄大片在线观看| 日韩av电影一区二区三区四区| 中文无码精品a∨在线观看| 漂亮人妻被中出中文字幕久久| 国产精品女熟高潮视频| 欧美啪啪一区| 天天综合网在线| 精品一区国产精品| 亚洲一区精品视频在线| 69综合网| 国产精品99久久久| 亚洲最新网址| 亚洲天堂成人| 国产精品女人呻吟在线观看| 99九九成人免费视频精品| 国产白丝av| 99热这里只有成人精品国产| 久久毛片基地| 免费aa毛片| 在线观看无码a∨| 91午夜福利在线观看精品| 99热这里只有精品久久免费| 最新国产精品第1页| 男女猛烈无遮挡午夜视频| 国产在线观看成人91| 狼友视频一区二区三区| 伊人久久福利中文字幕| 久久五月视频| 婷婷综合缴情亚洲五月伊| 欧美va亚洲va香蕉在线| 制服丝袜在线视频香蕉| 国产91全国探花系列在线播放| 欧美在线视频a| 国产一区二区三区在线精品专区| 97亚洲色综久久精品| 高清无码一本到东京热| 亚洲女同一区二区| 国产97色在线| 亚洲无线观看| 久久久久九九精品影院| 六月婷婷激情综合| 欧美亚洲一二三区| 中国国产高清免费AV片| 日本成人不卡视频|