




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于opengl的三維場(chǎng)景漫游實(shí)現(xiàn)摘要: 本課題是關(guān)于opengl三維場(chǎng)景的實(shí)現(xiàn),要求能夠?qū)崿F(xiàn)人機(jī)交互,具有縮放、旋轉(zhuǎn)等基本的功能。利用opengl創(chuàng)建三維模型的原理,本課題在理解opengl創(chuàng)建圖形元的基礎(chǔ)上,實(shí)現(xiàn)了簡(jiǎn)單三維場(chǎng)景模型的建立。通過(guò)建立全局Camera,實(shí)現(xiàn)了對(duì)場(chǎng)景全方位的觀測(cè),同時(shí)能夠及時(shí)響應(yīng)鍵盤(pán)和鼠標(biāo)的操作。在此基礎(chǔ)上,利用天空盒子和全局地形的方法,實(shí)現(xiàn)了三維場(chǎng)景的基本框架,能夠在虛擬場(chǎng)景中任意角度的漫游。通過(guò)紋理貼圖的方法,實(shí)現(xiàn)場(chǎng)景的創(chuàng)建,并對(duì)場(chǎng)景內(nèi)部的事物進(jìn)行碰撞檢測(cè),來(lái)實(shí)現(xiàn)簡(jiǎn)單的三維場(chǎng)景漫游。關(guān)鍵詞:三維建模; 全局Camera; 場(chǎng)景漫游;
2、紋理貼圖; 碰撞檢測(cè)目錄 專心-專注-專業(yè)1 課題論述1.1選題背景簡(jiǎn)介 隨著科技的發(fā)展,人們對(duì)視覺(jué)的需求也越來(lái)越高,這正好也促發(fā)了計(jì)算機(jī)圖形學(xué)的快速發(fā)展:從簡(jiǎn)單的平面圖形到3D空間的立體圖形空間的一個(gè)轉(zhuǎn)變,為opengl提供了廣闊的應(yīng)用和開(kāi)發(fā)前景。隨著opengl的越來(lái)越成熟,在各個(gè)領(lǐng)域的應(yīng)用也變得廣泛起來(lái)。從計(jì)算機(jī)、多媒體、影視到醫(yī)學(xué)、工業(yè)等領(lǐng)域。Opengl開(kāi)發(fā)的重心也有所轉(zhuǎn)變,從普通的三維場(chǎng)景的建立,到現(xiàn)在的大型復(fù)雜場(chǎng)景的三維信息生成、實(shí)時(shí)三維場(chǎng)景光影效果的模擬和實(shí)時(shí)三維場(chǎng)景的內(nèi)存使用控制,opengl的發(fā)展越來(lái)越成熟。 正是基于opengl目前廣泛的應(yīng)用,本課題從opengl基本的圖
3、形元的創(chuàng)建、渲染、視角的轉(zhuǎn)換等方面,選擇一些opengl的基本操作,實(shí)現(xiàn)簡(jiǎn)單的三維場(chǎng)景空間的漫游,促進(jìn)對(duì)opengl進(jìn)一步的了解,也為以后進(jìn)一步的開(kāi)發(fā)做準(zhǔn)備。1.2系統(tǒng)開(kāi)發(fā)平臺(tái)及運(yùn)行環(huán)境 本設(shè)計(jì)是基于Opengl 1.0在windows7操作系統(tǒng)下使用Visual C+6.0集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)并調(diào)試,設(shè)計(jì)中使用了基于Win Application的架構(gòu)。1.2.1 開(kāi)發(fā)環(huán)境的搭建本設(shè)計(jì)是在Visual C+ 6.0下使用Opengl1.0庫(kù)開(kāi)發(fā)的,開(kāi)發(fā)環(huán)境搭建步驟詳細(xì)如下:(1)安裝Visual C+ 6.0。(2)配置Opengl1.0由于Visual C+ 6.0本身帶有安裝好的opengl
4、1.0版本,所以一些頭文件和bin路徑的設(shè)置就不必要做了。但自帶的opengl1.0 沒(méi)有包含 glut函數(shù)庫(kù),所以需要下載glut函數(shù)庫(kù),并正確的設(shè)置include和bin的路徑,并把dll文件放到system32下。1.2.2 opengl繪圖機(jī)制 在Windows環(huán)境的繪圖機(jī)制下使用圖形設(shè)備接口GDI作圖要通過(guò)設(shè)備上下文調(diào)用相應(yīng)的函數(shù),用opengl作圖也是這樣。Opengl通過(guò)“渲染上下文”即RC完成對(duì)三維圖形的繪制。Windows下的設(shè)備上下文和窗口都支持“文圖格式”屬性,和RC在位圖結(jié)構(gòu)方面是一致的。因此只要在創(chuàng)建RC的同時(shí)與一個(gè)DC建立聯(lián)系,opengl函數(shù)就可以通過(guò)對(duì)應(yīng)的DC繪
5、制到相應(yīng)的顯示設(shè)備上面。2課題實(shí)現(xiàn)的關(guān)鍵技術(shù)2.1 場(chǎng)景建模 場(chǎng)景的建模能夠直接的展示出場(chǎng)景的 三維特性,也是影響三維可視化功能的關(guān)鍵。在本課題中,我主要完成了一下幾個(gè)場(chǎng)景的建模。 首先是地形的建模,在地形的建模中,采用了四邊形近視模型和紋理貼圖的方式來(lái)完成。在xoz平面,建立的是一個(gè)46*46的網(wǎng)格模型,其中每個(gè)方格的大小大約為7個(gè)坐標(biāo)。在y方向,通過(guò)讀取位圖信息的方式,建立的隨機(jī)高度的模型。其中,地形中心部分為平面,用于建立一些基本的場(chǎng)景,而地形的邊界部分,用位圖數(shù)據(jù)隨機(jī)讀取,生成一圈環(huán)繞的小山,把整個(gè)場(chǎng)景環(huán)繞在山圍之中。房子模型的建立是通過(guò)opengl簡(jiǎn)單的圖形元建立,首先建立房子的四周
6、,即四個(gè)圍墻,用四個(gè)平面圖形建立,然后屋頂通過(guò)兩個(gè)四邊形和兩個(gè)三角形進(jìn)行建模,實(shí)現(xiàn)三維房屋的構(gòu)建。天空的建立有很多方法,基本的有兩種:一種是天空盒法,另一種是天空球法。天空盒是有一個(gè)長(zhǎng)方體,在它的各個(gè)面上貼有天空的圖片組成。天空球是有一個(gè)球體,在它的表面貼上天空的紋理組成。天空球相對(duì)于天空盒子較簡(jiǎn)單,因?yàn)樗恍枰粡埣y理,但為了顯示效果的真實(shí)性,本課題采用的是天空盒子的方法,建立六個(gè)天空的面,然后選取合適的天空?qǐng)D片進(jìn)行貼圖。由于六個(gè)面的鏈接處會(huì)出現(xiàn)一條線,為了實(shí)現(xiàn)天空的無(wú)縫連接,需要設(shè)置紋理的一些屬性,來(lái)達(dá)到天空的無(wú)縫連接。2.2 場(chǎng)景渲染場(chǎng)景的渲染對(duì)于三維空間來(lái)說(shuō)也是十分最要的,因?yàn)檫@直接決
7、定著場(chǎng)景的真實(shí)性。本課題主要利用了紋理映射場(chǎng)景進(jìn)行渲染。紋理映射是把紋理空間中的紋理像素映射到屏幕空間中的像素的過(guò)程,利用紋理映射,可以使三維的世界顯得更加的逼真。本課題中主要對(duì)地形、天空、房子等進(jìn)行了紋理的渲染,同時(shí)利用鼠標(biāo)來(lái)旋轉(zhuǎn)攝像機(jī),相當(dāng)于對(duì)物體進(jìn)行了三維空間的旋轉(zhuǎn),來(lái)更好的觀測(cè)場(chǎng)景的效果。2.3 紋理映射 紋理映射技術(shù)的原理是通過(guò)把紋理空間坐標(biāo)與物體空間坐標(biāo)的每一點(diǎn)建立關(guān)聯(lián),實(shí)現(xiàn)把二維的紋理圖像映射到三維的物體表面,從而呈現(xiàn)出真實(shí)的視覺(jué)效果。 紋理映射操作包括啟用及載入紋理,指定紋理坐標(biāo),設(shè)置紋理的參數(shù),使用紋理對(duì)象等方面。Opengl中規(guī)定紋理貼圖在RGBA模式下。本文啟用了open
8、gl中的紋理映射技術(shù)來(lái)對(duì)三維場(chǎng)景中的地形、天空和房子進(jìn)行紋理的渲染,實(shí)現(xiàn)的大體過(guò)程如下:(1) 首先要?jiǎng)?chuàng)建紋理對(duì)象并且為此對(duì)像指定紋理。調(diào)用glGenTexture()函數(shù)創(chuàng)建紋理對(duì)象,使用一個(gè)正整數(shù)對(duì)紋理對(duì)象進(jìn)行編號(hào),并把相應(yīng)的對(duì)象存儲(chǔ)到指定的數(shù)組中。最后調(diào)用glBindTexture()函數(shù)實(shí)現(xiàn)把生成的紋理名字綁定到對(duì)應(yīng)的目標(biāo)紋理上。(2) 控制濾波的方式Opengl在圖像的時(shí)候,有可能顯示的圖像比原始的要大,也有可能比原始的圖像要小,所以要采用控制濾波的方式,對(duì)其進(jìn)行適當(dāng)?shù)姆糯蠛涂s小。本課題采用的是GL_LINEAR方式,這樣紋理總是以平滑的方式來(lái)顯示。(3) 啟用紋理并載入紋理的數(shù)據(jù)首
9、先要啟用紋理,通過(guò)glEnable(GL_TEXTURE_2D)來(lái)啟用二維的紋理,并通過(guò)glBindTexture()和glTexImage2D()來(lái)綁定紋理數(shù)據(jù)。由于貼紋理的時(shí)候要明確紋理與映射物體的映射關(guān)系,所以通過(guò)函數(shù)glTexCoord2f()來(lái)進(jìn)行綁定。2.4 碰撞檢測(cè) 碰撞檢測(cè)技術(shù)主要是對(duì)場(chǎng)景內(nèi)部的物體進(jìn)行的,由于場(chǎng)景都是自己通過(guò)三維圖形建立的,而隨著在場(chǎng)景內(nèi)部全局Camera的移動(dòng),相當(dāng)于觀察者在場(chǎng)景中進(jìn)行漫游。當(dāng)觀察者移動(dòng)到一些場(chǎng)景內(nèi)部時(shí),如果沒(méi)有碰撞檢測(cè),就會(huì)直接穿過(guò)物體,不符合實(shí)際的情況,所以需要引入碰撞檢測(cè)技術(shù)。碰撞檢測(cè)技術(shù)有很多中,本課題采用的是基于盒子的碰撞檢測(cè)原理,
10、即在被檢測(cè)物體的一定范圍之內(nèi),假設(shè)存在一個(gè)盒子把物體包圍住,當(dāng)觀察者移動(dòng)到盒子的范圍邊界時(shí),就停止一定,然后根據(jù)Camera的角度,進(jìn)行偏移。本課題場(chǎng)景比較簡(jiǎn)單,主要是有山和房子組成,所以碰撞檢測(cè)只做了山和房子的檢測(cè)。對(duì)于山的檢測(cè)比較簡(jiǎn)單,利用盒子原理,在山的內(nèi)部邊界部分,設(shè)置一個(gè)四方體邊界,當(dāng)相機(jī)移動(dòng)到邊界的時(shí)候,就停止移動(dòng),然后根據(jù)角度左右或則前后移動(dòng),防止穿過(guò)環(huán)繞山。而對(duì)于房子的檢測(cè),就要分為好幾部分,墻面的檢測(cè),門(mén)的檢測(cè)。其中在房子內(nèi)部和外部的邊界部分都要做邊緣的檢測(cè),使從外部進(jìn)入和里面出來(lái)都不能穿過(guò)墻面和門(mén)。其實(shí)現(xiàn)方法也是在墻面和門(mén)的附近很小的距離設(shè)置檢測(cè)邊界,當(dāng)?shù)竭_(dá)邊界時(shí),即碰撞到
11、了物體,不能越過(guò)邊界,從而達(dá)到碰撞檢測(cè)并不穿過(guò)物體的目的。3漫游場(chǎng)景的實(shí)現(xiàn) 3.1 全局Camera的創(chuàng)建由于需要在虛擬場(chǎng)景中實(shí)現(xiàn)漫游,如果只是簡(jiǎn)單的控制坐標(biāo)軸的旋轉(zhuǎn),不能夠?qū)?chǎng)景中的物體進(jìn)行全方位的觀察,因此引入了全局Camera,通過(guò)鍵盤(pán)的方向鍵和鼠標(biāo)的移動(dòng),來(lái)控制Camera移動(dòng)的方向和角度,實(shí)現(xiàn)場(chǎng)景的漫游。場(chǎng)景中大量的旋轉(zhuǎn)和平移,如果沒(méi)有相機(jī)來(lái)控制的話,程序會(huì)顯得雜亂。因此。本課題首先創(chuàng)建了Camera來(lái)實(shí)現(xiàn)對(duì)ViewMatrix矩陣和ProjectMatrix矩陣的管理。通俗的說(shuō),就是由相機(jī)來(lái)維護(hù)整個(gè)場(chǎng)景的平移、旋轉(zhuǎn)等矩陣換算,還有遠(yuǎn)近裁剪面的矩陣,這樣大量復(fù)雜計(jì)算全都在相機(jī)這樣一個(gè)
12、實(shí)體類(lèi)中得以處理,使用者只需要調(diào)用相機(jī)的外部接口來(lái)滿足自己的視角,相機(jī)內(nèi)部處理矩陣計(jì)算,最終傳遞給OpenGL對(duì)應(yīng)的Matrix,從而支撐起整個(gè)場(chǎng)景的視覺(jué)效果。在程序設(shè)計(jì)中,首先創(chuàng)建了Camera類(lèi),包含一些基本的處理函數(shù),關(guān)鍵的函數(shù)部分如下:void setCamera(float positionX, float positionY, float positionZ, float viewX, float viewY, float viewZ, float upVectorX, float upVectorY, float upVectorZ);void rotateView(float
13、angle, float X, float Y, float Z); /* 旋轉(zhuǎn)攝像機(jī)方向 */void setViewByMouse(); /* 根據(jù)鼠標(biāo)設(shè)置攝像機(jī)觀察方向 */void yawCamera(float speed); /* 左右攝像機(jī)移動(dòng) */void moveCamera(float speed); /* 前后移動(dòng)攝像機(jī) */ void setLook(); /* 放置攝像機(jī) */void checkForMovement(); /*檢查時(shí)候移動(dòng)*/void CheckedgeCollision(Vector3f oldPos,Vector3f oldView); /*碰
14、撞檢測(cè)*/首先需要調(diào)用setCamera(),初始化相機(jī)開(kāi)始的位置,在本程序中,相機(jī)的初始位置設(shè)定在場(chǎng)景的中心,方便后邊的碰撞檢測(cè)。然后通過(guò)鍵盤(pán)或則鼠標(biāo)的相應(yīng)事件,調(diào)用相應(yīng)的函數(shù),判斷是要向哪個(gè)方向一定。程序中設(shè)定“W、S、A、D、Shift”以及鍵盤(pán)上的方向鍵為相機(jī)移動(dòng)和加速的響應(yīng)鍵,當(dāng)方向鍵被按下時(shí),調(diào)用yawCamera() 函數(shù)和moveCamera()函數(shù),獲取移動(dòng)的方向,保存相應(yīng)的值。同時(shí)移動(dòng)鼠標(biāo),調(diào)用setViewByMouse()函數(shù),通過(guò)計(jì)算鼠標(biāo)移動(dòng)的角度,獲取Camera要旋轉(zhuǎn)的視角。最后調(diào)用checkForMovement()函數(shù),檢查鍵盤(pán)和鼠標(biāo)是否移動(dòng),如果移動(dòng),把上述
15、獲取的值賦予Camera,移動(dòng)相機(jī),實(shí)現(xiàn)漫游的效果。對(duì)于場(chǎng)景內(nèi)部的物體,需要做碰撞檢測(cè)來(lái)達(dá)到真實(shí)性,所以本程序采用了包圍盒子的方法,在被檢測(cè)物體一定小的范圍內(nèi),設(shè)置檢測(cè)區(qū)域,當(dāng)相機(jī)移動(dòng)到檢測(cè)區(qū)域的邊界時(shí),在checkForMovement()函數(shù)中調(diào)用CheckedgeCollision()函數(shù),做出判斷,看是否碰撞到檢測(cè)邊界,如果是,則停止移動(dòng),防止穿過(guò)被檢測(cè)物。3.2 地形和天空的繪制實(shí)現(xiàn)了全局Camera后,接下來(lái)就要繪制基本的框架:地形和天空。對(duì)于地形,本程序分為兩部分:一部分是高低不平的環(huán)繞山,另一部分是平地,用于建造房子等場(chǎng)景。對(duì)于天空的繪制,采用了天空盒子的思想,即繪制一個(gè)長(zhǎng)方體
16、,把所有的場(chǎng)景包含進(jìn)來(lái)。本程序中,設(shè)計(jì)了一個(gè)SkyBox類(lèi),用于繪制地形和天空,具體的機(jī)構(gòu)如下:class SkyBoxpublic: SkyBox(); SkyBox(); void CreateSkyBox(); /天空包圍盒 void DrawGround(); /繪制地面并紋理貼圖void Init(); /初始化地形 Vector3f m_TerrainCoordm_TerrainSize*m_TerrainSize; /網(wǎng)格坐標(biāo)數(shù)據(jù)void InitTerrainData(float height); /初始化地形數(shù)據(jù) void DrawGrid(int minrow,int ma
17、xrow,int mincol,int maxcol);private:GLuint m_Skybox6; GLuint m_Groundtexture2; AUX_RGBImageRec *m_TerrainImage; Texture m_Texture;對(duì)于地形的劃分,程序采用了46*46個(gè)小網(wǎng)格的方法來(lái)繪制,存儲(chǔ)在m_TerrainCoord 數(shù)據(jù)中, 對(duì)于地形的高度部分,由于高度不統(tǒng)一,所以程序通過(guò)調(diào)用auxDIBImageLoad()函數(shù),讀取一張位圖的RGB數(shù)據(jù)信息,來(lái)隨機(jī)的分配高度,并通過(guò)InitTerrainData(float height)函數(shù),初始化紋理的信息。當(dāng)所有的
18、數(shù)據(jù)都初始以后,調(diào)用DrawGround()函數(shù),繪制地形。對(duì)于天空的繪制,首先設(shè)置天空盒子的長(zhǎng)、寬、高以及繪制原點(diǎn)的坐標(biāo),然后調(diào)用CreateSkyBox()函數(shù)進(jìn)行繪制。其中,為了實(shí)現(xiàn)每個(gè)面的鏈接出沒(méi)有縫隙,在CreateSkyBox()函數(shù)中通過(guò)glTexParameteri()函數(shù)設(shè)置紋理的參數(shù)信息,這樣就能夠?qū)崿F(xiàn)無(wú)縫的鏈接。3.3場(chǎng)景的繪制地形和天空的基本框架繪制完成以后,就是場(chǎng)景內(nèi)部物體的繪制。在本程序中,場(chǎng)景比較簡(jiǎn)單,只繪制了房子和環(huán)繞山。其中環(huán)繞山在繪制地形的時(shí)候已經(jīng)實(shí)現(xiàn),所以只需要實(shí)現(xiàn)房子場(chǎng)景。對(duì)于房子的繪制,程序分為四部分:四個(gè)墻面、兩個(gè)斜的屋頂、兩個(gè)上部的三角墻面和門(mén),通
19、過(guò)House類(lèi),實(shí)現(xiàn)基本的繪制?;镜慕Y(jié)構(gòu)如下:class Housepublic: House();House();void Init();void DrawHouse(); /繪制房子void DrawSurface(); /繪制墻面void DrawDoor(); /繪制門(mén)void DrawRoof(); /繪制斜屋頂void DrawRoofOb(); /繪制直屋頂bool open ;private:Texture m_Texture;GLuint m_WallTexture4;房子的繪制比較簡(jiǎn)單,主要繪制一些基本的線元和小方格,然后綁定紋理的信息。首先是調(diào)用Init()函數(shù),初始化
20、房子的紋理信息,然后調(diào)用各個(gè)繪制函數(shù),實(shí)現(xiàn)房子的繪制。3.4紋理和字體類(lèi)的設(shè)計(jì) 程序中對(duì)于紋理和顯示字體的部分,也分別設(shè)計(jì)了Texture類(lèi)和Font類(lèi),來(lái)實(shí)現(xiàn)對(duì)紋理和字體的調(diào)用。具體的結(jié)構(gòu)如下:紋理類(lèi):class Texturepublic: bool LoadTexture(char *filename, GLuint &texture); /生成一個(gè)紋理,并用texture邦定 bool LoadAlphaTexture(char *filename,char *alphafilename, GLuint &texture,unsigned char compare);void Readstr(FILE *f,char *string); /讀取文件中的數(shù)據(jù)字體類(lèi):class Fontpublic: Font(); Font(); bool InitFont(); void Pr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 1 People around us Listening 教學(xué)設(shè)計(jì) -2024-2025學(xué)年滬教版(2024)初中英語(yǔ)七年級(jí)下冊(cè)
- 2025至2030年中國(guó)高精度自動(dòng)調(diào)直落料機(jī)行業(yè)發(fā)展研究報(bào)告
- 第4課《古代詩(shī)歌四首:次北固山下》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 陜西省藍(lán)田縣八年級(jí)生物下冊(cè) 第八單元 第一章 第二節(jié) 免疫與計(jì)劃免疫教學(xué)設(shè)計(jì) (新版)新人教版
- python 教務(wù)管理系統(tǒng)畢設(shè)
- 第8課 圖表呈現(xiàn)(教案)四年級(jí)上冊(cè)信息技術(shù)浙教版
- 安全生產(chǎn)亡人事故監(jiān)管責(zé)任
- 創(chuàng)業(yè)培訓(xùn)開(kāi)班儀式
- 橋上抗滑樁施工方案
- 井臺(tái)井蓋施工方案
- 山東義能煤礦有限公司礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 華能?chē)?guó)際電力股份有限公司本質(zhì)安全體系管理手冊(cè)
- 《對(duì)話大千世界-繪畫(huà)創(chuàng)意與實(shí)踐》 第1課時(shí) 定格青春-向藝術(shù)家學(xué)創(chuàng)作
- 文化人類(lèi)學(xué)完整版
- 2021南充中考英語(yǔ)試卷及答案及聽(tīng)力
- 《劉姥姥人物形象分析》課件-部編版語(yǔ)文九年級(jí)上冊(cè)
- 異丁烷安全標(biāo)簽
- 2009-2022歷年江蘇省事業(yè)單位統(tǒng)考《綜合知識(shí)和能力測(cè)驗(yàn)(法律類(lèi)崗位)》真題含答案2022-2023上岸必備帶詳解版5
- 年產(chǎn)萬(wàn)噸丁二烯畢業(yè)設(shè)計(jì)
- 光學(xué)(全套課件426P)
- 《林海雪原》知識(shí)點(diǎn) 整理
評(píng)論
0/150
提交評(píng)論