亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        計(jì)算機(jī)圖形學(xué)輔助教學(xué)網(wǎng)站

        2012-12-31 00:00:00蘇國慶

        摘要:本文主要介紹了計(jì)算機(jī)圖形學(xué)輔助教學(xué)網(wǎng)站的開發(fā)過程,核心論述了三維圖形在Web環(huán)境下實(shí)時(shí)交互的實(shí)現(xiàn)。針對圖形學(xué)三維知識的教學(xué)難點(diǎn),為了實(shí)現(xiàn)Web環(huán)境下實(shí)時(shí)互動(dòng)的三維教學(xué)演示,本課題采用了Java的Applet嵌入網(wǎng)頁中,同時(shí)通過JOGL(Java Bindings for OpenGL)來實(shí)現(xiàn)Applet中的三維圖形的繪制,并通過數(shù)字簽名技術(shù)繞過Applet的安全機(jī)制,來達(dá)到可交互的目的。

        關(guān)鍵詞:教學(xué)網(wǎng)站;三維圖形;JOGL;Applet

        中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 17-0000-02

        1 前言

        1.1 課題的目的及意義

        《計(jì)算機(jī)圖形學(xué)》是計(jì)算機(jī)學(xué)科中比較抽象,難懂的一門專業(yè)基礎(chǔ)課。按照普通的教學(xué)模式,學(xué)生不易接受。如能結(jié)合《計(jì)算機(jī)圖形學(xué)》輔助教學(xué)網(wǎng)站來教學(xué),使用動(dòng)畫和演示程序則能生動(dòng)、直觀地揭示計(jì)算機(jī)圖形學(xué)算法的精髓和本質(zhì),由于實(shí)現(xiàn)了算法的可視化,使學(xué)生的理論思維與形象思維有機(jī)的統(tǒng)一起來,有利于提高教學(xué)效果。

        2 相關(guān)技術(shù)簡介

        Web環(huán)境下的三維圖形交互技術(shù)是本課題的難點(diǎn),本課題通過對以下相關(guān)技術(shù)的研究和使用克服了這一難點(diǎn)。主要包括Java中Applet以及JOGL技術(shù),JOGL即是Java的OpenGL綁定。

        在面向?qū)ο蟮恼Z言中,Java是一種真正的面向?qū)ο蟮木幊陶Z言。為了在Java中使用OpenGL,出現(xiàn)了許多新的想通過友好的Java API來使用OpenGL的嘗試,如Java 3D,OpenGL for Java Technology等,其中有一種稱為Java對于OpenGL的綁定的技術(shù),得到了Sun公司和SGI公司的支持,是目前的一種比較令人滿意的在Java中使用OpenGL的技術(shù)[1]。

        3 網(wǎng)站建設(shè)總體設(shè)計(jì)

        3.1 網(wǎng)站制作流程與總體規(guī)劃

        網(wǎng)站的制作流程如下:

        第一步:網(wǎng)站定位。

        第二步:依據(jù)需求分析對網(wǎng)站結(jié)構(gòu)進(jìn)行總體規(guī)劃。

        第三步:劃分各功能模塊。

        第四步:制定網(wǎng)站建設(shè)規(guī)則和標(biāo)準(zhǔn)。

        第五步:選擇開發(fā)需要的軟硬件環(huán)境。

        第六步:構(gòu)建網(wǎng)站。

        第七步:網(wǎng)站的測試。

        第八步:網(wǎng)站的發(fā)布與維護(hù)管理。

        由于本課題的重點(diǎn)是WEB下三維圖形的交互,因此建站環(huán)節(jié)不做詳解

        4 網(wǎng)站詳細(xì)設(shè)計(jì)

        本章重點(diǎn)介紹教學(xué)演示模塊的詳細(xì)設(shè)計(jì)。

        根據(jù)需求分析和概要設(shè)計(jì),當(dāng)點(diǎn)擊演示子目錄時(shí),顯示內(nèi)容分別如圖4-1、4-2所示。其中,圖4-2為演示子目錄中的鼠標(biāo)交互結(jié)果圖。

        在介紹各個(gè)演示的算法實(shí)現(xiàn)前,首先介紹一下三維圖形的顯示流程。如圖4-3所示。

        基于三維圖形顯示原理圖,我們設(shè)計(jì)出本模塊的六個(gè)演示(幾何變換、投影變換、光照、材質(zhì)、紋理、霧化)及算法。首先要實(shí)現(xiàn)演示的主程序框架,即JOGL下的特殊的Applet框架。同時(shí)該演示運(yùn)行界面主要包括三個(gè)窗口:世界坐標(biāo)系窗口、屏幕坐標(biāo)系窗口、命令行窗口。因此,我們需要分別實(shí)現(xiàn)這三個(gè)窗口,然后通過主框架的調(diào)用,完成演示的實(shí)現(xiàn)。

        4.1 主程序的框架實(shí)現(xiàn):

        (1)Java下的Applet框架

        Applet框架的主要功能是創(chuàng)建一個(gè)顯示窗口,并整體控制程序的生命周期,同時(shí)負(fù)責(zé)調(diào)用三個(gè)子窗口的監(jiān)聽器,主要分為四個(gè)部分:

        ①init( )方法:初始化程序,主要完成一些Applet構(gòu)造方法不能完成的工作。

        ②start( )方法:啟動(dòng)程序,初始化后,重入等都將自動(dòng)調(diào)用。

        ③stop( )方法:停止程序,用于停止消耗系統(tǒng)資源。

        ④destroy( )方法:銷毀程序,瀏覽器關(guān)閉時(shí)自動(dòng)調(diào)用,以清除所用資源。

        (2)JOGL下的Applet框架

        JOGL中的Applet框架與Java下的Applet框架相同,包括上面四個(gè)部分,但是在各部分中需要添加自己的實(shí)現(xiàn)代碼。

        4.2 命令行窗口

        該窗口功能的實(shí)現(xiàn)主要通過定義一個(gè)監(jiān)聽器類CommandWindow來完成。

        該部分主要顯示該演示所需的關(guān)鍵代碼及隨時(shí)更新其中可變的坐標(biāo)參數(shù)。

        4.3 屏幕坐標(biāo)系窗口

        該窗口功能的實(shí)現(xiàn)主要通過定義一個(gè)監(jiān)聽器類ScreenWindow來完成。

        該部分主要顯示繪制出來的三維物體模型,同時(shí)還包含兩種用戶交互。

        4.4 世界坐標(biāo)系窗口

        該窗口功能的實(shí)現(xiàn)主要通過定義一個(gè)監(jiān)聽器類WorldWindow來完成。

        該部分主要顯示視點(diǎn),世界坐標(biāo)系,視景體,以及在世界坐標(biāo)系下看到的三維物體模型。

        上邊詳細(xì)講述了演示中三個(gè)窗口的相應(yīng)處理,下面我們以幾何變換為例來詳細(xì)介紹演示的實(shí)現(xiàn)過程。

        該演示的類名稱為TransformationApplet,其主框架實(shí)現(xiàn)同上。

        各窗口的主要處理如下:

        (1)命令行窗口

        本窗口中除了前面提到的數(shù)據(jù)結(jié)構(gòu),還要用到的數(shù)據(jù)結(jié)構(gòu)為:

        ①定義視點(diǎn)

        public static float eye[] = { 0.0f, 0.0f, 2.0f };//定義視點(diǎn)的位置

        public static float at[] = { 0.0f, 0.0f, 0.0f };//定義物體的位置

        public static float up[] = { 0.0f, 1.0f, 0.0f };//定義向上的向量

        ②定義矩陣

        projection:投影矩陣,公有靜態(tài)數(shù)組;

        modelview:幾何矩陣,公有靜態(tài)數(shù)組;

        inverse:轉(zhuǎn)置矩陣,公有靜態(tài)數(shù)組;

        ③定義標(biāo)志性變量

        public static boolean swapped = 1;//判斷是否交換平移和旋轉(zhuǎn)的位置

        (2)屏幕坐標(biāo)系窗口

        該窗口繼承前邊提到的全部監(jiān)視器。

        數(shù)據(jù)結(jié)構(gòu):

        public static boolean flag = 1;//判斷是否在該窗口進(jìn)行交互控制

        基本函數(shù):public void Judge(float update,int selection)

        功能:更新變量值。

        (3)世界坐標(biāo)系窗口

        該窗口繼承前邊提到的事件監(jiān)視器。

        數(shù)據(jù)結(jié)構(gòu):

        public static boolean flag = 1;//判斷是否在該窗口進(jìn)行交互控制

        本窗口的繪制以及用戶交互的實(shí)現(xiàn)過程為:

        在事件監(jiān)聽器中,窗口重繪操作的處理不同。窗口繪制操作的CommandDisplay()函數(shù)代碼有所不同。

        上面主要介紹幾何變換演示的主要實(shí)現(xiàn)過程,其它的演示的實(shí)現(xiàn)過程類似,只是具體代碼有些不同,本文不再詳述。

        5 小結(jié)

        本章重點(diǎn)介紹了教學(xué)演示中的演示的實(shí)現(xiàn)過程,至此,完成了本網(wǎng)站的建設(shè)。

        參考文獻(xiàn):

        [1]Andrew Davison.Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL API.Apress,2007.

        久久成人国产精品一区二区| 亚洲av午夜成人片精品| 亚洲第一页综合av免费在线观看 | 国产精品∧v在线观看| 97精品伊人久久大香线蕉app| 亚洲色欲色欲www成人网| 成人国产一区二区三区av| 东京热久久综合久久88| 青青青国产精品一区二区| 亚洲AV无码一区二区三区精神| 亚洲一区二区三区在线视频| 中文字幕日本五十路熟女| 国产91清纯白嫩初高中在线观看| 少妇太爽了在线观看免费视频| 国产农村妇女毛片精品久久久| 大屁股流白浆一区二区| 国产精品女同一区二区免费站| 久久国产精品久久久久久| 国产精品美女白浆喷水| 少妇激情一区二区三区| 老女老肥熟女一区二区| 成人免费看吃奶视频网站| 国产女奸网站在线观看| 精品国产日韩亚洲一区在线| 乱中年女人伦| 国产成人精品三级麻豆| 91亚洲精品久久久蜜桃| 国产一区二区三区内射| 熟女熟妇伦av网站| 中日韩欧美高清在线播放| 区一区二区三免费观看视频| 日韩精品久久无码中文字幕| 亚洲天堂99| 成人性生交大片免费看7| 麻豆国产一区二区三区四区| 欧美丰满熟妇aaaaa片| 亚洲免费毛片网| 久久婷婷综合激情五月| 国产精品你懂的在线播放| 国产v综合v亚洲欧美大天堂| 国产一区二区不卡av|