基于OpenGL的三維物儺紋理貼圖研究_第1頁(yè)
基于OpenGL的三維物儺紋理貼圖研究_第2頁(yè)
基于OpenGL的三維物儺紋理貼圖研究_第3頁(yè)
基于OpenGL的三維物儺紋理貼圖研究_第4頁(yè)
基于OpenGL的三維物儺紋理貼圖研究_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于OpenGL的三維物儺紋理貼圖研究關(guān)鍵字: OpenGL 紋理貼圖 三維物體 紋理貼圖是開(kāi)發(fā)三維圖形系統(tǒng)的重要一環(huán)。本文論述了結(jié)舍c語(yǔ)言與OpenGL實(shí)現(xiàn)三維物體紋理貼圖的思路與方法。并通過(guò)實(shí)例驗(yàn)證了紋理貼圖技術(shù)在繪制真實(shí)感圖形中的可行性。在軟件開(kāi)發(fā)過(guò)程中,為了能夠更好地再現(xiàn)三維圖形,常常需要繪制逼真的景物?,F(xiàn)實(shí)世界中的物體表面往往有著豐富的紋理,因此,要繪制逼真的三維物體,除了對(duì)物體進(jìn)行光照處理外,還需要給物體表面附加上這種紋理特征,使之看起來(lái)更真實(shí),這就要用到“紋理貼圖”技術(shù)。文中將論述在Windows窗口系統(tǒng)下,用C語(yǔ)言和OpenGL實(shí)現(xiàn)三維物體的紋理貼圖過(guò)程,從中可以看到紋理貼圖的

2、一般性原理與方法。1、紋理貼圖的概述紋理貼圖技術(shù)又稱(chēng)紋理映射技術(shù),是計(jì)算機(jī)圖形學(xué)中廣泛應(yīng)用的一項(xiàng)重要技術(shù)。傳統(tǒng)的幾何造型很難描述景物表面的微觀(guān)細(xì)節(jié),而利用紋理圖像來(lái)描述景物表面各點(diǎn)處的反射屬性,可以達(dá)到模擬景物表面豐富的紋理細(xì)節(jié)的目的,從而提高計(jì)算機(jī)生成圖形的真實(shí)性。另一方面,采用紋理映射的方法可以大大地簡(jiǎn)化建模的過(guò)程。比如,同是一棟大樓表面。若完全用建模的方法來(lái)構(gòu)造,則需要畫(huà)出大樓的每一扇門(mén)、每一扇窗戶(hù);若采用紋理映射,只需建立簡(jiǎn)單的長(zhǎng)方體模型,用拍下的大樓外觀(guān)圖片貼至模型表面即可。相比之下,工作量要小得多。紋理貼圖,從本質(zhì)上講,是個(gè)位圖圖像。在程序中,個(gè)紋理圖像就是一個(gè)一維或二維數(shù)組,存儲(chǔ)

3、每一個(gè)像素的顏色值(包括R、G、B、A分值,分別存儲(chǔ)一個(gè)像素的紅、綠、藍(lán)、透明度分值)。運(yùn)用一個(gè)紋理貼圖,就是把紋理圖像根據(jù)紋理坐標(biāo)對(duì)應(yīng)到圖元上。比如,現(xiàn)在有一個(gè)三角形,頂點(diǎn)坐標(biāo)分別是Vl、V2、V3,以及一幅紋理圖像。現(xiàn)在。我們可以在繪制三角形之前,為頂點(diǎn)VI、V2、V3指定紋理坐標(biāo),使每一個(gè)頂點(diǎn)的坐標(biāo)和它的紋理坐標(biāo)一一對(duì)應(yīng),如圖1所示:一旦建立起這種對(duì)應(yīng)關(guān)系,就可以開(kāi)啟紋理貼圖功能,讓OPenGL根據(jù)頂點(diǎn)的貼圖坐標(biāo)渲染出指定的三角形,如圖2所示:這就是紋理貼圖的原理。2、OpenGL的紋理貼圖紋理映射是將制定圖像的一部分映射到允許進(jìn)行紋理映射的每個(gè)圖段上。這種映射伴隨著使用一幅圖像的顏色到

4、某一圖段的(s,t,r)坐標(biāo)所指示的位置上并修改該圖段的RGBA顏色。概括地說(shuō),使用紋理繪制的一般步驟為:定義紋理貼圖、控制紋理、說(shuō)明紋理貼圖方式、定義紋理坐標(biāo)等。21定義紋理一般來(lái)說(shuō),離散法是比較常用的紋理定義方法,其實(shí)現(xiàn)函數(shù)為:gl_Texlmage2D()該函數(shù)的原型如下:void glTelmage2D(GLenum target,Glint level,GLenum components,GLsizei width,GLsizei height,Glint border,GLenumformat,GLenum type,const GLvoid4pixels)其中:target指定紋

5、理映射,此處必須是GLTEXTURE2D;Jevel指定紋理圖像分辨率的級(jí)數(shù),當(dāng)只有一種分辨率時(shí),level=0;Components是選擇用于調(diào)整和混合的成分;width和height分別指定紋理圖像的寬和高,必須是2n,n為正數(shù);Border為邊界的寬度,必須是0和1;format和type分別指定紋理映射的格式和數(shù)據(jù)類(lèi)型;Pixels指定一個(gè)指針,指向紋理數(shù)據(jù)在內(nèi)存中的位置。22控制紋理紋理圖像在映射到物體時(shí)會(huì)產(chǎn)生許多問(wèn)題。這些問(wèn)題主要有紋理圖像的紋理怎樣對(duì)應(yīng)到屏幕上的像素、怎樣通過(guò)紋理貼圖實(shí)現(xiàn)紋理縮放和紋理重復(fù)等。其實(shí)現(xiàn)函數(shù)為glTexParameter(),該函數(shù)的原型(以glTex

6、Parameterf形式為例)為:void glTexParameterf(GLenum target,GLeHum pname,GIAloat param),其中target參數(shù)為目標(biāo)紋理,pname參數(shù)的取值有以下幾個(gè):GL_EXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T,而param參數(shù)的取值要根據(jù)pname而定。23紋理貼圖模式OpenGL用于紋理貼圖方式的函數(shù)為glTexEnv(),該函數(shù)的原型(以glTexEnvf形式為例)為:void glTexEnvf(GLenum targ

7、et,GLenum pname,GLtloat param),其中target參數(shù)必須為GL_TEXTURE_ENV,pname參數(shù)必須為GL_TEXTURE ENvMODE,而參數(shù)param為GL_MODULATE、GLDECAL或GL_BLEND。24紋理坐標(biāo)紋理坐標(biāo)控制紋理圖像中的像素怎樣映射到物體。紋理坐標(biāo)可以是1、2、3、4維的,通常用其次坐標(biāo)來(lái)表示,即(s,t,r,q)。OpenGL定義紋理坐標(biāo)的函數(shù)為glTexCoord()。該函數(shù)共有32種不同的形式。例如:gl_TexCoord4f(0.0f,0.0f,0.0f,0.0f)。 維物體紋理貼圖的實(shí)現(xiàn)在C+Builder的開(kāi)發(fā)環(huán)境

8、下,結(jié)合OpenGL的紋理貼圖技術(shù),給一個(gè)六面體的表面附加紋理。首先,要定義一個(gè)紋理貼圖,并將其載入內(nèi)存,需在OpenGLAPPanell的控件的OnInit事件中編寫(xiě)如下代碼附錄資料:不需要的可以自行刪除C語(yǔ)言編譯環(huán)境中的調(diào)試功能及常見(jiàn)錯(cuò)誤提示調(diào)試功能1常用健 : 激活系統(tǒng)菜單: 將光標(biāo)在編輯窗口和、信息窗口之間切換: 加載一個(gè)文件+: 查看程序運(yùn)行結(jié)果: 得到有關(guān)編輯器在線(xiàn)幫助+: 得到有關(guān)C語(yǔ)言的在線(xiàn)幫助+: 終止正在運(yùn)行的程序2塊操作 KB: 定義塊首 KK: 定義塊尾 KV: 塊移動(dòng) KC: 塊復(fù)制 KY: 塊刪除 KH: 取消塊定義3查找、替換和刪除操作 QF: 查找字符串 QA:

9、 查找并替換字符串 Option: G(全程), B(向文件頭), N(直接替換) Y : 刪除一行 QY: 刪除從光標(biāo)位置到行末的所有字符編譯中的常見(jiàn)錯(cuò)誤例析(1)警告類(lèi)錯(cuò)誤 XXXdeclare but never used 變量XXX已定義但從未用過(guò)。 XXXis assigned a value which is never used 變量XXX已賦值但從未用過(guò)。 Code has no effect 程序中含有沒(méi)有實(shí)際作用的代碼。 Non-portable pointer conversion 不適當(dāng)?shù)闹羔樲D(zhuǎn)換,可能是在應(yīng)該使用指針的地方用了一個(gè)非0的數(shù)值。 Possible use

10、 of XXXbefore definition 表達(dá)式中使用了未賦值的變量 Redeclaration of main 一個(gè)程序文件中主函數(shù)main不止一個(gè)。 Suspicious pointer conversion 可疑的指針轉(zhuǎn)換。通常是使用了基本類(lèi)型不匹配的指針。 Unreachable code 程序含有不能執(zhí)行到的代碼。(2)錯(cuò)誤或致命錯(cuò)誤 Compound statement missing in function main 程序結(jié)尾缺少括號(hào)。 “”expected; “(”expected等 復(fù)合語(yǔ)句或數(shù)組初始化的結(jié)尾缺少“)”;“(”。 Case outside of swi

11、tch case 不屬于Switch結(jié)構(gòu),多由于switch結(jié)構(gòu)中的花括號(hào)不配對(duì)所致。 Case statement missing : switch結(jié)構(gòu)中的某個(gè)case之后缺少冒號(hào)。 Constant expression required 定義數(shù)組時(shí)指定的數(shù)組長(zhǎng)度不是常量表達(dá)式。 Declaration syntax error 結(jié)構(gòu)體或聯(lián)合類(lèi)型的定義后缺少分號(hào)。 Declaration was expected 缺少說(shuō)明,通常是因?yàn)槿鄙俜纸绶缍禾?hào)、分號(hào)、右圓括號(hào)等所引起的。 Default outside switch Default部分放到了switch結(jié)構(gòu)之外,一般是因?yàn)榛ɡㄌ?hào)不匹

12、配而引起的。 do statement must have while do語(yǔ)句中缺少相應(yīng)的while部分。 Expression syntax 表達(dá)式語(yǔ)法錯(cuò)。如表達(dá)式中含有兩個(gè)連續(xù)的運(yùn)算符 Extra parameter in call fun 調(diào)用函數(shù)fun時(shí)給出了多余的實(shí)參。 Function should return a value 函數(shù)應(yīng)該返回一個(gè)值,否則與定義時(shí)的說(shuō)明類(lèi)型不匹配。 Illegal use of pointer 指針被非法引用,一般是使用了非法的指針運(yùn)算。 Invalid pointer addition 指針相加非法。一個(gè)指針(地址)可以和一個(gè)整數(shù)相加,但兩個(gè)指針

13、不能相加。 Lvalue required 賦值運(yùn)算的左邊是不能尋址的表達(dá)式。 Misplaced else 程序遇到了沒(méi)有配對(duì)的else No matching 表達(dá)式中的括號(hào)不配對(duì)。 Pointer required on left side of_ 在“_”運(yùn)算的左邊只能允許一個(gè)指針而不能是一個(gè)一般的結(jié)構(gòu)體變量或聯(lián)合類(lèi)型的變量。 Statement missing; 程序遇到了后面沒(méi)有分號(hào)的語(yǔ)句。 Too few parameters in call 調(diào)用某個(gè)函數(shù)時(shí)實(shí)參數(shù)目不夠。 Unable to open include file XXXXXXXXXXX 頭文件找不到。 Unexpe

14、cted 或:或 在不希望的地方使用了或:。 Undefined symbol Xin function fun 函數(shù)fun中的變量X沒(méi)有定義。5.連接中的常見(jiàn)錯(cuò)誤主要錯(cuò)誤類(lèi)似于“undefined symbol _print in modula xxx”(print沒(méi)有定義),通常是函數(shù)名書(shū)寫(xiě)錯(cuò)誤。6.運(yùn)行中的常見(jiàn)錯(cuò)誤Abnormal program termination 程序異常終止。通常是由于內(nèi)存使用不當(dāng)所致。Floating point error : Domain 或Divide by 0 運(yùn)算結(jié)果不是一個(gè)數(shù)或被0 除Null pointer assignment 對(duì)未初始化的指針

15、賦值,程序有嚴(yán)重錯(cuò)誤。User break 在運(yùn)行程序時(shí)終止。7.程序的跟蹤調(diào)試?yán)肦un菜單可以進(jìn)行程序的跟蹤調(diào)試(1)GO to Cursor ()選擇該選項(xiàng)使程序執(zhí)行到光標(biāo)所在行首先將光標(biāo)移到某行(一般為可執(zhí)行),選擇該功能項(xiàng),則程序執(zhí)行到該行的前一行暫停。此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處,此時(shí)可以查詢(xún)變量或表達(dá)式的值。(2)Trace into ()執(zhí)行一條語(yǔ)句或一行暫停此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項(xiàng)可跟蹤到被調(diào)函數(shù)的內(nèi)部。(3)Step over ()執(zhí)行一條語(yǔ)句或一行暫停此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項(xiàng)將自定義函數(shù)當(dāng)作一個(gè)

16、語(yǔ)句執(zhí)行,不跟蹤到函程序的內(nèi)部。(4)Debug 菜單程序處于跟蹤狀態(tài)時(shí),可使用該菜單的選項(xiàng)。其主要是使用Evaluate目的是查詢(xún)或更新變量或表達(dá)式的值。選擇Evaluate功能后,系統(tǒng)彈出一個(gè)對(duì)話(huà)框。該對(duì)話(huà)框包含三個(gè)選項(xiàng)區(qū)域:Evaluate域可以輸入一個(gè)含有目前代碼中(程序暫停區(qū)的作用域)正在使用的變量名、或含變量的表達(dá)式、或常量表達(dá)式。按回車(chē)鍵后,在Result域中顯示變量或表達(dá)式的值。還可以用New value域進(jìn)行調(diào)試。如果調(diào)試程序時(shí)發(fā)現(xiàn)Result域顯示的某變量或表達(dá)式的值不正確,并能估計(jì)出該變量或表達(dá)式的值,則可以將該值輸入到New value域,繼續(xù)執(zhí)行程序,其目的是肯定錯(cuò)誤

17、發(fā)生處是否在當(dāng)前位置之前。如果輸入這個(gè)正確的值并將程序繼續(xù)執(zhí)行完畢而結(jié)果正確,說(shuō)明在目前暫停處之前已經(jīng)發(fā)生錯(cuò)誤而之后無(wú)錯(cuò)誤。(5)Break/Watch用于設(shè)置斷點(diǎn)和監(jiān)視表達(dá)式。選擇Add Watch功能選項(xiàng),系統(tǒng)將彈出一個(gè)菜單,在A(yíng)dd Watch框中輸入變量名或表達(dá)式,按回車(chē)鍵后,系統(tǒng)在屏幕底部開(kāi)辟一個(gè)窗口并顯示 該變量或表達(dá)式的值?!境R?jiàn)錯(cuò)誤信息語(yǔ)句索引】Ambiguous operators need parentheses:不明確的運(yùn)算需要用括號(hào)括起 Ambiguous symbol xxx :不明確的符號(hào) Argument list syntax error:參數(shù)表語(yǔ)法錯(cuò)誤 Arr

18、ay bounds missing in function main 缺少數(shù)組界限符 Array bounds missing :丟失數(shù)組界限符 Array size too large :數(shù)組尺寸太大 Bad character in paramenters :參數(shù)中有不適當(dāng)?shù)淖址?Bad file name format in include directive :包含命令中文件名格式不正確 Bad ifdef directive synatax :編譯預(yù)處理ifdef有語(yǔ)法錯(cuò) Bad undef directive syntax :編譯預(yù)處理undef有語(yǔ)法錯(cuò) Bit field too

19、 large :位字段太長(zhǎng) Call of non-function :調(diào)用未定義的函數(shù) Call to function with no prototype :調(diào)用函數(shù)時(shí)沒(méi)有函數(shù)的說(shuō)明 Cannot modify a const object :不允許修改常量對(duì)象 Case outside of switch :漏掉了case 語(yǔ)句 Case syntax error :Case 語(yǔ)法錯(cuò)誤 Code has no effect :代碼不可述不可能執(zhí)行到 Compound statement missing :分程序漏掉 Conflicting type modifiers :不明確的類(lèi)型說(shuō)明

20、符 Constant expression required :要求常量表達(dá)式 Constant out of range in comparison :在比較中常量超出范圍 Conversion may lose significant digits :轉(zhuǎn)換時(shí)會(huì)丟失意義的數(shù)字 Conversion of near pointer not allowed :不允許轉(zhuǎn)換近指針 Could not find file xxx :找不到XXX文件 Declaration missing ; :說(shuō)明缺少; Declaration syntax error :說(shuō)明中出現(xiàn)語(yǔ)法錯(cuò)誤 Default outs

21、ide of switch :Default 出現(xiàn)在switch語(yǔ)句之外 Define directive needs an identifier :定義編譯預(yù)處理需要標(biāo)識(shí)符 Division by zero :用零作除數(shù) Do statement must have while :Do-while語(yǔ)句中缺少while部分 Enum syntax error :枚舉類(lèi)型語(yǔ)法錯(cuò)誤 Enumeration constant syntax error :枚舉常數(shù)語(yǔ)法錯(cuò)誤 Error directive :xxx :錯(cuò)誤的編譯預(yù)處理命令 Error writing output file :寫(xiě)輸出文件

22、錯(cuò)誤 Expression syntax error :表達(dá)式語(yǔ)法錯(cuò)誤 Extra parameter in call :調(diào)用時(shí)出現(xiàn)多余錯(cuò)誤 File name too long :文件名太長(zhǎng) Function call missing ) :函數(shù)調(diào)用缺少右括號(hào) Fuction definition out of place :函數(shù)定義位置錯(cuò)誤 Fuction should return a value :函數(shù)必需返回一個(gè)值 Goto statement missing label :Goto語(yǔ)句沒(méi)有標(biāo)號(hào) Hexadecimal or octal constant too large :16進(jìn)

23、制或8進(jìn)制常數(shù)太大 Illegal character x :非法字符x Illegal initialization :非法的初始化 Illegal octal digit :非法的8進(jìn)制數(shù)字 Illegal pointer subtraction :非法的指針相減 Illegal structure operation :非法的結(jié)構(gòu)體操作 Illegal use of floating point :非法的浮點(diǎn)運(yùn)算 Illegal use of pointer :指針使用非法 Improper use of a typedefsymbol :類(lèi)型定義符號(hào)使用不恰當(dāng) In-line asse

24、mbly not allowed :不允許使用行間匯編 Incompatible storage class :存儲(chǔ)類(lèi)別不相容 Incompatible type conversion :不相容的類(lèi)型轉(zhuǎn)換 Incorrect number format :錯(cuò)誤的數(shù)據(jù)格式 Incorrect use of default Default使用不當(dāng) Invalid indirection 無(wú)效的間接運(yùn)算 Invalid pointer addition 指針相加無(wú)效 Irreducible expression tree 無(wú)法執(zhí)行的表達(dá)式運(yùn)算 Lvalue required 需要邏輯值0或非0值 M

25、acro argument syntax error 宏參數(shù)語(yǔ)法錯(cuò)誤 Macro expansion too long 宏的擴(kuò)展以后太長(zhǎng) Mismatched number of parameters in definition 定義中參數(shù)個(gè)數(shù)不匹配 Misplaced break 此處不應(yīng)出現(xiàn)break語(yǔ)句 Misplaced continue 此處不應(yīng)出現(xiàn)continue語(yǔ)句 Misplaced decimal point 此處不應(yīng)出現(xiàn)小數(shù)點(diǎn) Misplaced elif directive 不應(yīng)編譯預(yù)處理elif Misplaced else 此處不應(yīng)出現(xiàn)else Misplaced e

26、lse directive 此處不應(yīng)出現(xiàn)編譯預(yù)處理else Misplaced endif directive 此處不應(yīng)出現(xiàn)編譯預(yù)處理endif Must be addressable 必須是可以編址的 Must take address of memory location 必須存儲(chǔ)定位的地址 No declaration for function xxx 沒(méi)有函數(shù)xxx的說(shuō)明 No stack 缺少堆棧 No type information 沒(méi)有類(lèi)型信息 Non-portable pointer assignment 不可移動(dòng)的指針(地址常數(shù))賦值 Non-portable pointe

27、r comparison 不可移動(dòng)的指針(地址常數(shù))比較 Non-portable pointer conversion 不可移動(dòng)的指針(地址常數(shù))轉(zhuǎn)換 Not a valid expression format type 不合法的表達(dá)式格式 Not an allowed type 不允許使用的類(lèi)型 Numeric constant too large 數(shù)值常太大 Out of memory 內(nèi)存不夠用 Parameter xxx is never used 能數(shù)xxx沒(méi)有用到 Pointer required on left side of - 符號(hào)-的左邊必須是指針 Possible us

28、e of xxx before definition 在定義之前就使用了xxx(警告) Possibly incorrect assignment 賦值可能不正確 Redeclaration of xxx 重復(fù)定義了xxx Redefinition of xxx is not identical xx的兩次定義不一致 Register allocation failure 寄存器定址失敗 Repeat count needs an lvalue 重復(fù)計(jì)數(shù)需要邏輯值 Size of structure or array not known 結(jié)構(gòu)體或數(shù)給大小不確定 Statement missin

29、g ; 語(yǔ)句后缺少; Structure or union syntax error X構(gòu)體或聯(lián)合體語(yǔ)法錯(cuò)誤 Structure size too large 結(jié)構(gòu)體尺寸太大 Sub scripting missing 下標(biāo)缺少右方括號(hào) Superfluous & with function or array 函數(shù)或數(shù)組中有多余的& Suspicious pointer conversion 可疑的指針轉(zhuǎn)換 Symbol limit exceeded 符號(hào)超限 Too few parameters in call 函數(shù)調(diào)用時(shí)的實(shí)參少于函數(shù)的參數(shù)不 Too many default cases

30、Default太多(switch語(yǔ)句中一個(gè)) Too many error or warning messages 錯(cuò)誤或警告信息太多 Too many type in declaration 說(shuō)明中類(lèi)型太多 Too much auto memory in function 函數(shù)用到的局部存儲(chǔ)太多 Too much global data defined in file 文件中全局?jǐn)?shù)據(jù)太多 Two consecutive dots 兩個(gè)連續(xù)的句點(diǎn) Type mismatch in parameter xxx 數(shù)xxx類(lèi)型不匹配 Type mismatch in redeclaration of xxx xx重定義的類(lèi)型不匹配 Unable to create

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論