亚洲免费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色哟哟| 亚洲一区二区三区中文字幂| 亚洲国产高清在线一区二区三区 | 91精品国产高清久久福利| 日韩国产精品一区二区三区 | 国产熟妇另类久久久久| 国产在线精品成人一区二区三区| 中文无码制服丝袜人妻av| 日本口爆吞精在线视频| 国内精品少妇久久精品| 一区二区三区日本高清| 男女无遮挡高清性视频| 色婷婷综合久久久中文字幕| 国产成人精品无码一区二区老年人| 亚洲国产综合人成综合网站| 中文字幕大屁股熟女乱| 日韩精人妻无码一区二区三区| 在线不卡精品免费视频| 日本亚洲视频一区二区三区| 久久精品国产亚洲av无码娇色| 伊人久久网国产伊人| 亚洲中文字幕黄色小视频| 自拍视频在线观看首页国产| 中国娇小与黑人巨大交| 最新国产精品久久精品| 国产精品日韩高清在线蜜芽| 久草视频华人在线观看| 青青草在线免费播放视频| 国产精品videossex久久发布| 蜜桃视频无码区在线观看| 初尝黑人巨砲波多野结衣| 亚州AV无码乱码精品国产| 在线视频播放观看免费| 亚洲av无码国产精品久久| 激情内射日本一区二区三区| 97人妻熟女成人免费视频| 日本激情网址| 国产爽快片一区二区三区| 97色偷偷色噜噜狠狠爱网站| 亚洲日韩欧美一区二区三区| 美女一区二区三区在线观看视频|