亚洲高清vr播放在线观看,欧美亚洲精品免费,欧美日韩天堂在线视频,午夜福利小视频

      學(xué)習(xí)啦>實(shí)用范文>心得體會(huì)>心得體會(huì)范文>

      計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得

      時(shí)間: 戚苗998 分享

        計(jì)算機(jī)圖形學(xué)是20世紀(jì)60年代以后,隨著計(jì)算機(jī)技術(shù)(包括計(jì)算機(jī)硬件技術(shù)和軟件技術(shù))的發(fā)展和完善而形成的一門新興學(xué)科。下面是學(xué)習(xí)啦小編為大家收集整理的計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得,歡迎大家閱讀。

        計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得篇1

        一、實(shí)驗(yàn)?zāi)康?/p>

        了解梁友棟算法和編碼裁剪算法并利用該算法思想實(shí)現(xiàn)某一圖形或直線段的裁剪,加深對(duì)梁友棟算法和編碼裁剪算法的理解。

        二、實(shí)驗(yàn)內(nèi)容

        利用梁友棟算法(參數(shù)化線段裁剪算法)或編碼裁剪算法變成實(shí)現(xiàn)對(duì)直線段或者任一圖形的裁剪。

        三、實(shí)驗(yàn)原理

        梁友棟算法簡(jiǎn)介如下:

        設(shè)線段兩端點(diǎn)坐標(biāo)分別為P1(x1,y1)和P2(x2,y2),則其參數(shù)化直線方程可寫成下列形式:

        0≤u≤1

        當(dāng)u=0時(shí),得點(diǎn)P1,當(dāng)u=1時(shí),得點(diǎn)P2。線段的裁剪條件可以由下面的不等式表示: Wxl≤x1﹢uΔx≤Wxr;Wyb≤y1﹢uΔy≤Wyt

        這四個(gè)不等式可以表示為:upk≤qk k=1,2,3,4

        其中,參數(shù)p,q定義為:

        p1﹦-Δx, q1﹦x1﹣Wxl

        p2﹦Δx, q2﹦Wxr﹣x1

        p3﹦-Δy, q3﹦y1﹣Wyb

        p4﹦Δy, q4﹦Wyt﹣y1

        下標(biāo)k=1,2,3,4分別對(duì)應(yīng)裁剪窗口的左、右、下、上四條邊界線。如果線段平行于裁剪窗口的某兩邊界,則必有相應(yīng)的pk﹦0,如果還滿足qk<0,則線段的端點(diǎn)位于窗口外部,即線段在窗口外,應(yīng)該舍棄。如果qk≥0,線段在窗口內(nèi)。當(dāng)pk<0時(shí),直線是從裁剪窗口第k條邊界線的外部延伸到內(nèi)部。當(dāng)pk>0時(shí),直線是從裁剪窗口第k條邊界線的內(nèi)部延伸到外部。當(dāng)pk不等于零時(shí),可以計(jì)算出線段與第k條裁剪窗口邊界線的交點(diǎn)參數(shù): 根據(jù)定義,對(duì)于每條線段,pk中必有兩個(gè)小于零,而另兩個(gè)大于零。對(duì)于小于零的pk,直線同第k條裁剪窗口邊線是從外到內(nèi)相遇的,此時(shí)如果線段同第k條裁剪窗口邊界線有交點(diǎn)的話,是參數(shù)u從0變大時(shí)遇到的,這時(shí)計(jì)算出相應(yīng)的rk值,取0和各個(gè)rk值之中的最大值記為u1。與此相反,對(duì)于大于零的pk,計(jì)算出相應(yīng)的rk值,取1和各個(gè)rk值之中的最小值記為u2。兩個(gè)參數(shù)u1和u2定義了在裁剪窗口內(nèi)的線段部分。如果u1>u2,則線段完全落在裁剪窗口之外,應(yīng)被舍棄。否則被裁剪線段可見部分的端點(diǎn)由參數(shù)u1和u2計(jì)算出來。

        四、實(shí)驗(yàn)環(huán)境

        Windows XP VisualC++6.0

        五、實(shí)驗(yàn)步驟

        進(jìn)入VisualC++6.0環(huán)境,在菜單中選擇“FileàNewàProjects”,然后選擇“MFCAppWizard(exe)”新建一個(gè)工程文件單擊“OK”,在彈出的對(duì)話框中選擇“Single document”,單擊“Finish”,在VisualC++6.0編程界面中選擇CMyView單擊右鍵,選擇“Add Member Function”,在彈出的對(duì)話框中添寫“void”和函數(shù)名。

        // 圖形裁減View.cpp : implementation of the CMyView class

        //

        #include "stdafx.h"

        #include "圖形裁減.h"

        #include "圖形裁減Doc.h"

        #include "圖形裁減View.h"

        #ifdef _DEBUG

        #define new DEBUG_NEW

        #undef THIS_FILE

        static char THIS_FILE[] = __FILE__;

        #endif

        /////////////////////////////////////////////////////////////////////////////

        // CMyView

        IMPLEMENT_DYNCREATE(CMyView, CView)

        BEGIN_MESSAGE_MAP(CMyView, CView)

        //{{AFX_MSG_MAP(CMyView)

        // NOTE - the ClassWizard will add and remove mapping macros here.

        // DO NOT EDIT what you see in these blocks of generated code!

        //}}AFX_MSG_MAP

        // Standard printing commands

        ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

        ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)

        ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)

        END_MESSAGE_MAP()

        /////////////////////////////////////////////////////////////////////////////

        // CMyView construction/destruction

        CMyView::CMyView()

        {

        // TODO: add construction code here

        }

        CMyView::~CMyView()

        {

        }

        BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)

        {

        // TODO: Modify the Window class or styles here by modifying

        // the CREATESTRUCT cs

        return CView::PreCreateWindow(cs);

        }

        /////////////////////////////////////////////////////////////////////////////

        // CMyView drawing

        void CMyView::OnDraw(CDC* pDC)

        {

        CMyDoc* pDoc = GetDocument();

        ASSERT_VALID(pDoc);

        LINECLIP();

        // TODO: add draw code for native data here

        }

        /////////////////////////////////////////////////////////////////////////////

        // CMyView printing

        BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)

        {

        // default preparation

        return DoPreparePrinting(pInfo);

        }

        void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

        {

        // TODO: add extra initialization before printing

        }

        void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

        {

        // TODO: add cleanup after printing

        }

        /////////////////////////////////////////////////////////////////////////////

        // CMyView diagnostics

        #ifdef _DEBUG

        void CMyView::AssertValid() const

        {

        CView::AssertValid();

        }

        void CMyView::Dump(CDumpContext& dc) const

        {

        CView::Dump(dc);

        }

        CMyDoc* CMyView::GetDocument() // non-debug version is inline

        {

        ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));

        return (CMyDoc*)m_pDocument;

        }

        #endif //_DEBUG

        /////////////////////////////////////////////////////////////////////////////

        // CMyView message handlers

        void CMyView::LINECLIP()

        {

        //使用梁友棟-Basky直線裁剪算法

        CDC* pDC=GetDC();//取得繪圖設(shè)備環(huán)境上下文指針

        //設(shè)置不同顏色畫筆

        CPen newpen1(PS_SOLID,0,RGB(183,198,0));//窗口顏色

        CPen newpen2(PS_SOLID,0,RGB(0,0,1));//待裁剪線段顏色

        CPen newpen3(PS_SOLID,0,RGB(160,1,255));//裁剪后可見線段顏色

        //輔助變量

        float p[4],q[4],u[4];

        float u1,u2,r[4];

        int x1,y1,x2,y2,x0,y0,x3,y3;

        int dx,dy,k;

        int wxl=300,wxr=450,wyb=100,wyt=400;

        //繪制裁剪窗口

        pDC->SelectObject(&newpen1);

        pDC->Rectangle(wxl,wyt,wxr,wyb);

        x1=100;

        y1=200;

        x2=600;

        y2=400;

        //繪制被裁剪線段

        pDC->SelectObject(&newpen2);

        pDC->MoveTo(x1,y1);

        pDC->LineTo(x2,y2);

        //計(jì)算

        dx=x2-x1;

        dy=y2-y1;

        p[0]=(float)-dx;

        p[1]=(float)dx;

        p[2]=(float)-dy;

        p[3]=(float)(dy);

        q[0]=(float)(x1-wxl);

        q[1]=(float)(wxr-x1);

        q[2]=(float)(y1-wyb);

        q[3]=(float)(wyt-y1);

        for(k=0;k<4;k++)

        {

        if ((p[k]==0))//垂直或水平線段,由不為0的另外兩個(gè)參數(shù)確定可見部分

        {

        u[k]=1000;

        }

        else

        {

        r[k]=q[k]/p[k];

        if(p[k]<0)

        u[k]=(0>r[k])?0:r[k];//取用0與r[k]中的大值

        else

        u[k]=(r[k]<1)?r[k]:1;//取用1與r[k]中的小值

        }

        }

        //參數(shù)在0-1之間變化,超出為無(wú)效參數(shù)

        u1=0.0;

        u2=1.0;

        for(k=0;k<4;k++)

        {

        if(p[k]<0)

        u1=(u[k]>u1)?u[k]:u1;//取用0與u[k]中的大值

        else

        u2=(u[k]

        }

        //滿足條件為可見部分線段

        if(u1<=u2)

        {

        //計(jì)算可見部分線段

        x0=(int)(x1+u1*dx);

        y0=(int)(y1+u1*dy);

        x3=(int)(x1+u2*dx);

        y3=(int)(y1+u2*dy);

        //繪制窗口內(nèi)可見線段

        pDC->SelectObject(&newpen3);

        pDC->MoveTo(x0,y0);

        pDC->LineTo(x3,y3);

        }

        }

        六、實(shí)驗(yàn)結(jié)果與分析

        本圖中矩形內(nèi)紫色線段為裁剪之后可見線段,外部的黑色線段部分為帶裁剪部分。

        七、實(shí)驗(yàn)中遇到的問題及解決方法

        1.對(duì)于VisualC++6.0的工程文件即:MFC的環(huán)境不熟悉,開始時(shí)編寫視圖View下的程序在步驟上尚有困難,不知道該怎樣使用該環(huán)境,再參考了一些相關(guān)書籍和求教于其他人之后,這個(gè)問題得到了解決。

        2.最初只是在后面添加了自編程序,并沒有在“OnDraw”里面加入該程序的調(diào)用,程序編譯沒有錯(cuò)誤,但運(yùn)行后只是一個(gè)窗口,并沒有圖像,后來在同學(xué)的幫助下發(fā)現(xiàn)了這個(gè)錯(cuò)誤,改正后程序順利運(yùn)行。

        3.程序編寫過程中的語(yǔ)法不再是問題,偶爾有疏忽的時(shí)候,編譯時(shí)一般就能改正了。

        4.在程序編寫時(shí)對(duì)于點(diǎn)的坐標(biāo)值不是很注意,隨意定義了一些點(diǎn),造成直線畫到了圖形的外面。

        計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得篇2

        計(jì)算機(jī)圖形學(xué)是利用計(jì)算機(jī)研究圖形的表示、生成、處理和顯示的科學(xué)。簡(jiǎn)單地說,計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容就是研究如何在計(jì)算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。圖形通常由點(diǎn)、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看,圖形主要分為兩類,一類是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實(shí)感圖形。經(jīng)過30多年的發(fā)展,計(jì)算機(jī)圖形學(xué)已成為計(jì)算機(jī)科學(xué)中最為活躍的分支之一,并得到廣泛的應(yīng)用。

        在科技高度發(fā)展的今天,計(jì)算機(jī)在人們之中的作用越來越突出。而C語(yǔ)言作為一種計(jì)算機(jī)的語(yǔ)言,我們學(xué)習(xí)它,有助于我們更好的了解計(jì)算機(jī),更好的學(xué)習(xí)計(jì)算機(jī)圖形學(xué)。因此,C語(yǔ)言對(duì)我們計(jì)算機(jī)圖形學(xué)的學(xué)習(xí)尤其重要,而我們也需要一定的C語(yǔ)言基礎(chǔ)知識(shí)。

        在這個(gè)學(xué)期里,我們班級(jí)的學(xué)生在計(jì)算機(jī)圖形學(xué)老師何老師的帶領(lǐng)下進(jìn)行了計(jì)算機(jī)圖形學(xué)的上機(jī)實(shí)踐學(xué)習(xí)。在這之前,我們已經(jīng)對(duì)C語(yǔ)言這門課程學(xué)習(xí)了一個(gè)學(xué)期,對(duì)其有了一定的了解和掌握,這對(duì)我們計(jì)算機(jī)圖形的學(xué)習(xí)打下了良好的基礎(chǔ)。但是,萬(wàn)事開頭難,在計(jì)算機(jī)圖形學(xué)的上機(jī)實(shí)踐的過程中還是遇到了一些問題。

        上機(jī)實(shí)驗(yàn)是學(xué)習(xí)計(jì)算機(jī)圖形學(xué)必不可少的實(shí)踐環(huán)節(jié),上課學(xué)習(xí)到的知識(shí)都需要通過C語(yǔ)言編程做出程序來真正掌握它。對(duì)于計(jì)算機(jī)圖形學(xué)的學(xué)習(xí)目的,可以概括為圖形的表示、圖形的生成、圖形的處理和顯示,這些都必須通過充分的實(shí)際上機(jī)操作才能完成。我們上機(jī)實(shí)驗(yàn)總共包括七個(gè), 每個(gè)實(shí)驗(yàn)之前老師都會(huì)給我們做詳細(xì)的介紹,具體的操作步驟老師也給了一個(gè)參考書,這樣的話,我們?cè)谏蠙C(jī)過程中也省去了很多麻煩,節(jié)約了很多時(shí)間。因此,我們才有了充裕的時(shí)間來理解實(shí)驗(yàn)原理,并結(jié)合自己的想象力,編寫出屬于自己的程序。

        學(xué)習(xí)計(jì)算機(jī)圖形學(xué)除了課堂講授以外,必須保證有不少于課堂講授學(xué)時(shí)的上機(jī)時(shí)間。因?yàn)閷W(xué)時(shí)所限,課程安排在周四晚上統(tǒng)一上機(jī)實(shí)驗(yàn),所以我們需要有效地利用上機(jī)實(shí)驗(yàn)的機(jī)會(huì),盡快掌握理解計(jì)算機(jī)圖形學(xué)的基礎(chǔ)知識(shí),為今后的繼續(xù)學(xué)習(xí)打下一個(gè)良好的基礎(chǔ)。課程上機(jī)實(shí)驗(yàn)的目的,不僅僅是驗(yàn)證教材和講課的內(nèi)

        容、檢查自己所編的程序是否正確,課程安排的上機(jī)實(shí)驗(yàn)的目的可以概括為如下幾個(gè)方面:

        加深對(duì)課堂講授內(nèi)容的理解

        課堂上要講授許多關(guān)于計(jì)算機(jī)圖形學(xué)的知識(shí)和原理,聽起來十分枯燥無(wú)味,也不容易記住,死記硬背是不可取的。然而要使用C程序這個(gè)工具解決實(shí)際學(xué)習(xí)中的問題,通過多次上機(jī)練習(xí),,在理解的基礎(chǔ)上就會(huì)自然而然地掌握計(jì)算機(jī)圖形學(xué)圖形生成的算法和處理方式。對(duì)于一些內(nèi)容自己認(rèn)為在課堂上聽懂了,但上機(jī)實(shí)踐中會(huì)發(fā)現(xiàn)原來理解的偏差,編寫出來的程序無(wú)法運(yùn)行,這是由于大部分學(xué)生C語(yǔ)言基礎(chǔ)只是不夠牢固的原因。

        學(xué)習(xí)計(jì)算機(jī)圖形學(xué)不能停留在學(xué)習(xí)它的程序語(yǔ)言,而是利用學(xué)到的知識(shí)編寫C語(yǔ)言程序來驗(yàn)證自己的想法,深入理解圖形生成的原理,解決實(shí)際問題。即把C語(yǔ)言作為工具,描述解決實(shí)際問題的步驟,由計(jì)算機(jī)幫助我們解題。只有通過上機(jī)才能檢驗(yàn)自己是否掌握C語(yǔ)言、自己編寫的程序是否能夠正確運(yùn)行、對(duì)計(jì)算機(jī)的理解是否到位。

        通過上機(jī)實(shí)驗(yàn)來驗(yàn)證自己編制的程序是否正確,恐怕是大多數(shù)同學(xué)在完成老師作業(yè)時(shí)的心態(tài)。但是在程序設(shè)計(jì)領(lǐng)域里這是一定要克服的傳統(tǒng)的、錯(cuò)誤的想法。因?yàn)樵谶@種思想支配下,可能你會(huì)想辦法去"掩蓋"程序中的錯(cuò)誤,而不是盡可能多地發(fā)現(xiàn)程序中存在的問題。而且計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)是依附在C語(yǔ)言編程基礎(chǔ)之上的,我們對(duì)圖形生成算法的理解要通過C程序才能體現(xiàn)出來。

        通過這次為數(shù)不多的幾天計(jì)算機(jī)實(shí)踐學(xué)習(xí),我們鞏固了一些關(guān)于C語(yǔ)言的知識(shí),理解了我們計(jì)算機(jī)圖形學(xué)的理論知識(shí),這對(duì)我們將來到社會(huì)工作將會(huì)有莫大的幫助。同時(shí)它讓我知道計(jì)算機(jī)圖形的強(qiáng)大和瑰麗之處,雖然我們學(xué)的都是基本的生成算法,但是通過老師展示的幾個(gè)計(jì)算機(jī)圖形學(xué)高級(jí)程序,我們才了解到計(jì)算機(jī)圖形學(xué)可以做出非常華麗的視覺效果,而且只要你努力,任何東西都不會(huì)太難。

        最后,還是很慶幸能學(xué)到計(jì)算機(jī)圖形學(xué)這樣的一門課程,在學(xué)習(xí)本課程的同時(shí),已經(jīng)涉及了很多的學(xué)科,讓我們更有能力成為全方位、多特色的新世紀(jì)人才。編程能力、思維能力都獲得了提高,真是一舉多得。

        計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得篇3

        計(jì)算機(jī)圖形學(xué)是20世紀(jì)60年代以后,隨著計(jì)算機(jī)技術(shù)(包括計(jì)算機(jī)硬件技術(shù)和軟件技術(shù))的發(fā)展和完善而形成的一門新興學(xué)科。至今,計(jì)算機(jī)圖形學(xué)已在建筑,機(jī)械,電子,造船,航空,汽車,輕工,廣告,藝術(shù)等領(lǐng)域得到了廣泛的應(yīng)用??梢哉f,它幾乎影響了所有涉及領(lǐng)域,沖擊和改變著傳統(tǒng)的設(shè)計(jì)模式。一打開計(jì)算機(jī),人們首先接觸到的就是計(jì)算機(jī)圖形學(xué)的內(nèi)容,因?yàn)橛?jì)算機(jī)的用戶界面已廣泛使用了計(jì)算機(jī)圖形技術(shù)。事實(shí)上,計(jì)算機(jī)圖形技術(shù)已深入到各個(gè)領(lǐng)域。計(jì)算機(jī)圖形的生成一般包括兩種方法:程序繪圖和交互繪圖。所謂程序繪圖,就是先用計(jì)算機(jī)語(yǔ)言(例如C語(yǔ)言)編好繪圖程序,然后運(yùn)行該程序并繪出圖形。而交互繪圖則是應(yīng)用交互式圖形軟件,通過交互命令(鍵盤命令,菜單命令等)由計(jì)算機(jī)生成圖形。程序繪圖是交互式繪圖的基礎(chǔ)。

        簡(jiǎn)單地說,計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容就是研究如何在計(jì)算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。圖形通常由點(diǎn)、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看,圖形主要分為兩類,一類是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實(shí)感圖形。 計(jì)算機(jī)圖形學(xué)一個(gè)主要的目的就是要利用計(jì)算機(jī)產(chǎn)生令人賞心悅目的真實(shí)感圖形。為此,必須建立圖形所描述的場(chǎng)景的幾何表示,再用某種光照模型,計(jì)算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。所以計(jì)算機(jī)圖形學(xué)與另一門學(xué)科計(jì)算機(jī)輔助幾何設(shè)計(jì)有著密切的關(guān)系。事實(shí)上,圖形學(xué)也把可以表示幾何場(chǎng)景的曲線曲面造型技術(shù)和實(shí)體造型技術(shù)作為其主要的研究?jī)?nèi)容。同時(shí),真實(shí)感圖形計(jì)算的結(jié)果是以數(shù)字圖像的方式提供的,計(jì)算機(jī)圖形學(xué)也就和圖像處理有著密切的關(guān)系。

        這學(xué)期我們主要學(xué)習(xí)了MFC圖形編程,學(xué)習(xí)了《 VC++圖形程序設(shè)計(jì)基礎(chǔ)》。從中學(xué)習(xí)了如何建立MFC項(xiàng)目和簡(jiǎn)單的輸入與輸出。

        三視圖即主視圖、俯視圖、側(cè)視圖是分別將三維立體對(duì)正面、水平面和側(cè)面作正投影得到的三個(gè)基本視圖。

        用計(jì)算機(jī)繪制立體圖的三視圖的具體步驟:

        建立三維空間坐標(biāo)系,這里定義一個(gè)右手直角坐標(biāo)系,即z軸正向朝上。在這個(gè)定義的坐標(biāo)系下,確定三維立體上各點(diǎn)的位置坐標(biāo),同時(shí)引入 齊次坐標(biāo)。 求出所作變換相應(yīng)的四階變換矩陣,一般根據(jù)變換前后圖形上點(diǎn)的幾何關(guān)系或由已知的變換矩陣求得。

        將所作變換寫出矩陣表示式,通過運(yùn)算求得三維立體上各點(diǎn)(x, y, z)竟變換后的相應(yīng)點(diǎn)(x’ , y’)或(y’ , z’)或(x’ , z’),一般是二維點(diǎn)的齊次坐標(biāo)。

        有變換后的所有二維點(diǎn)繪出三維立體投影后的平面圖形,即為主視圖、俯視圖或側(cè)視圖。

        在右手直角坐標(biāo)系中,將三維立體向xOz面(正面V)作正投影,得到主視圖。由投影變換前后三維立體上點(diǎn)到主視圖上點(diǎn)的關(guān)系,可知此投影變換的變換矩陣為:

        ⎡1⎢0

        Tv=⎢⎢0 ⎢⎣0 000000100⎤0⎥⎥0⎥⎥1⎦

        Tv:主視圖的投影變換矩陣,簡(jiǎn)稱投影矩陣。

        若已知三維立體上 n 個(gè)點(diǎn)(xi , yi , zi),則各點(diǎn)的齊次坐標(biāo)可寫成 n⨯4 階矩陣,主視圖的投影變換矩陣表示式為:

        ⎡x1y1z11⎤⎡1000⎤⎡x10z11⎤⎢⎥⎢x0z1⎥ ⎢x2y2z21⎥⎢2⎥⎢2⎥0000⎥=⎢⋅⋅⋅⋅⎥ ⎢⋅⋅⋅⋅⎥⋅⎢

        ⎥⎢0010⎥⎢⎥ ⎢⋅⋅⋅⋅⋅⋅⋅⋅⎢⎥⎢⎥⎢⎥ ⎢xyz1⎥⎣0001⎦⎢x0z1⎥nnn⎣n⎦⎣n⎦

        在繪圖時(shí),只要取x=xi , y=zi (i=1,2,…,n),,就可在屏幕上繪出三維立體的主視圖

        三維立體向xOy面(水平面H)作正投影得到俯視圖。

        其投影變換矩陣: ⎡1000⎤ ⎢0100⎥' ⎥T=⎢⎢0000⎥ ⎢⎥ 0001⎣⎦

        為了使俯視圖與主視圖也畫在一個(gè)平面內(nèi),就要使H面繞x軸負(fù)方向轉(zhuǎn)90o,此旋轉(zhuǎn)變換矩陣為:

        ⎡1000⎤⎢00-10⎥ ⎥Tx=⎢ ⎢0100⎥ ⎢⎥0001⎦⎣

        為了使俯視圖與主視圖間有一定的間距,還要使H面沿負(fù)z方向平移一段距離z0。其變換矩陣為: ⎡1000⎤ ⎢0100⎥ ⎥T=⎢⎢0010⎥ ⎢⎥ ⎣00-z01⎦

        因此俯視圖的投影變換矩陣為上面三個(gè)變換矩陣的連乘積,即:

        ⎡1000⎤⎡1000⎤⎡1000⎤ ⎥⎢⎥⎢⎥⎢ T=T'⋅T⋅T=⎢0100⎥ ⋅ ⎢00-10⎥⋅⎢0100⎥Hx⎢0000⎥⎢0100⎥⎢0010⎥ ⎥⎢⎥⎢⎥⎢ 00-z100010001⎣⎦⎣⎦⎣0⎦ ⎡1000⎤ ⎢00-10⎥⎥ =⎢⎢0000⎥ ⎢⎥00-z1 0⎣⎦

        俯視圖的投影變換矩陣表示為:

        ⎡x1y1z11⎤⎡x10(-y1-z0)1⎤⎢xyz1⎥⎡1000⎤⎢x0(-y-z)1⎥ 2220⎢2⎥⎢00-10⎥⎢2⎥ ⎥=⎢⋅⋅⎢⋅⋅⋅⋅⎥⋅⎢⋅⋅⎥⎢⎥0000 ⎢⎥⎢⎥⋅⋅⋅⋅⋅⋅⋅⋅⎢⎥⎢⎥00-z1⎢⎥ 0⎣⎦⎢⎢⎣xnynzn1⎥⎦⎣xn0(-yn-z0)1⎥⎦

        由此得到三維立體的俯視圖上n個(gè)點(diǎn)(xi , -yi-z0) (i=1,2,…,n),取x=xi , y=-yi-z0(i=1,2,…,n),便可繪出三維立體的俯視圖。

        將三維立體向yOz面(側(cè)面W)作正投影得到俯視圖。

        其投影變換矩陣: ⎡0000⎤ ⎢0100⎥' ⎥T=⎢⎢0010⎥ ⎢⎥ 0001⎣⎦為了使俯視圖與主視圖都畫在一個(gè)平面內(nèi),就要使W面繞z軸轉(zhuǎn)90o,此旋轉(zhuǎn)變換矩陣為:

        ⎡0100⎤⎢-1000⎥⎥Tz=⎢⎢0010⎥⎢⎥0001⎣⎦

        第3 / 4頁(yè)

        為了使側(cè)視圖與主視圖間有一定的間距,還要使W面沿負(fù)x方向平移一段距離x0。其變換矩陣為:

        ⎡1000⎤⎢0100⎥ ⎥T=⎢ ⎢0010⎥ ⎢⎥-x0001⎦⎣

        因此側(cè)視圖的投影變換矩陣為上面三個(gè)變換矩陣的連乘積,即:

        ⎡0000⎤⎡0100⎤⎡1000⎤⎢0100⎥⎢-1000⎥⎢0100⎥ ⎥⎥ ⋅ ⎢⎥⋅⎢Tw=⎢ ⎢0010⎥⎢0010⎥⎢0010⎥ ⎥⎢⎥⎢⎥⎢0001⎦⎣0001⎦⎣-x0001⎦⎣

        ⎡0000⎤ ⎢-1000⎥ ⎥ =⎢ ⎢0010⎥⎢⎥ -x0010⎣⎦ ⎡x1y1z11⎤⎡(-y1-x0)0z11⎤ 0000⎡⎤⎢xyz1⎥⎢(-y-x)0z1⎥

        2222 ⎢⎥⎢-1000⎥⎢20⎥⎢⎥⎢⋅=⎢⋅⋅⋅⋅⎥⋅⋅⋅⋅⎥ ⎢⎥0010⎢⎥⎢⎥ ⋅⋅⋅⋅⋅⋅⋅⋅⎢⎥⎢-x001⎥⎢⎥0⎣⎦ ⎢⎢⎣xnynzn1⎥⎦⎣(-yn-x0)0zn1⎥⎦

        由此得到三維立體的側(cè)視圖上n個(gè)點(diǎn)(-yi-x0 , zi) (i=1,2,…,n),取x= -yi-x0, y=-zi(i=1,2,…,n),便可繪出三維立體的側(cè)視圖。

        先讓三維立體作投影面,然后旋轉(zhuǎn)投影面得到平攤在同一個(gè)平面上的三個(gè)視圖。也可以先把三維立體作旋轉(zhuǎn),然后再向投影面作正投影得到同樣的三視圖。

        通過這這們課的學(xué)習(xí),讓我對(duì)計(jì)算機(jī)的應(yīng)用有了更新的認(rèn)識(shí),對(duì)于圖形學(xué)中基本圖形的生成算法有了一定的了解,圖形學(xué)是計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科的活躍前沿學(xué)科,被廣泛的應(yīng)用到生物學(xué)、物理學(xué)、化學(xué)、天文學(xué)、地球物理學(xué)、材料科學(xué)等領(lǐng)域。我深深感到這門學(xué)科涉及的領(lǐng)域之廣是驚人的,可以說博大精深。在這個(gè)計(jì)算機(jī)的時(shí)代什么都要用到計(jì)算機(jī)技術(shù),圖形也是我們生活中重要的部分,好學(xué)好圖形學(xué)為我以后的就業(yè)課成學(xué)習(xí)及新興科學(xué)技術(shù)的運(yùn)用打下了堅(jiān)實(shí)基礎(chǔ)。更為我以后的就業(yè)打下了堅(jiān)實(shí)的良好基礎(chǔ),使我對(duì)未來充滿了信心。感謝向華萍老師對(duì)我們的認(rèn)真指導(dǎo)。

      計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得相關(guān)文章:

      1.計(jì)算機(jī)專業(yè)學(xué)習(xí)總結(jié)

      2.3d打印技術(shù)學(xué)習(xí)心得

      3.電視臺(tái)個(gè)人實(shí)習(xí)總結(jié)2000字

      4.課程實(shí)踐報(bào)告范文

      5.醫(yī)學(xué)生大三學(xué)年鑒定表個(gè)人總結(jié)(2)

      計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得

      計(jì)算機(jī)圖形學(xué)是20世紀(jì)60年代以后,隨著計(jì)算機(jī)技術(shù)(包括計(jì)算機(jī)硬件技術(shù)和軟件技術(shù))的發(fā)展和完善而形成的一門新興學(xué)科。下面是學(xué)習(xí)啦小編為大家收集整理的計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得,歡迎大家閱讀。 計(jì)算機(jī)圖形學(xué)學(xué)習(xí)心得篇1 一、實(shí)驗(yàn)?zāi)康?了
      推薦度:
      點(diǎn)擊下載文檔文檔為doc格式

      精選文章

      • 計(jì)算機(jī)跟班學(xué)習(xí)心得
        計(jì)算機(jī)跟班學(xué)習(xí)心得

        通過這次的計(jì)算機(jī)跟班學(xué)習(xí),在以后的工作中,我必須始終把學(xué)習(xí)放在第一,加強(qiáng)學(xué)習(xí),積極實(shí)踐,不斷拓寬自己的業(yè)務(wù)知識(shí)領(lǐng)域,不斷熟悉、積累和堅(jiān)持

      • 計(jì)算機(jī)導(dǎo)論學(xué)習(xí)心得
        計(jì)算機(jī)導(dǎo)論學(xué)習(xí)心得

        通過計(jì)算機(jī)導(dǎo)論學(xué)習(xí),在實(shí)踐中也等于復(fù)習(xí)了這個(gè)學(xué)期所學(xué)的內(nèi)容,而且我發(fā)現(xiàn)這樣的實(shí)踐,比我在平時(shí)課后看書,看資料所學(xué)到的還多。下面是學(xué)習(xí)啦小

      • 計(jì)算機(jī)病毒學(xué)習(xí)心得
        計(jì)算機(jī)病毒學(xué)習(xí)心得

        隨著網(wǎng)絡(luò)的發(fā)展,信息的傳播越來越快捷,同時(shí)也給病毒的傳播帶來便利,互聯(lián)網(wǎng)的普及使病毒在一夜之間傳遍全球成為可能。下面是學(xué)習(xí)啦小編為大家收

      • 幾何畫板學(xué)習(xí)心得
        幾何畫板學(xué)習(xí)心得

        通過最近的選修內(nèi)容的學(xué)習(xí),使我充分認(rèn)識(shí)到幾何畫板這一軟件在教學(xué)中的應(yīng)用價(jià)值,促使我迫不及待的進(jìn)行自學(xué)這一軟件,并應(yīng)用于自己的教學(xué)實(shí)踐,讓

      3542191