嵌入式-圖形-實(shí)驗(yàn)報(bào)告_第1頁(yè)
嵌入式-圖形-實(shí)驗(yàn)報(bào)告_第2頁(yè)
嵌入式-圖形-實(shí)驗(yàn)報(bào)告_第3頁(yè)
嵌入式-圖形-實(shí)驗(yàn)報(bào)告_第4頁(yè)
嵌入式-圖形-實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)圖形用戶(hù)接口實(shí)驗(yàn)?zāi)康牧私馇度胧较到y(tǒng)圖形界面的基本編程方法學(xué)習(xí)圖形庫(kù)的制作實(shí)驗(yàn)原理Frame Buffer 顯示屏的整個(gè)顯示區(qū)域,在系統(tǒng)內(nèi)會(huì)有一段存儲(chǔ)空間與之對(duì)應(yīng)。通過(guò)改變?cè)摯鎯?chǔ)空間的內(nèi)容達(dá)到改變顯示信息的目的。該存儲(chǔ)空間被稱(chēng)為Frame Buffer,或顯存。顯示屏上的每一點(diǎn)都與Frame Buffer里的某一位置對(duì)應(yīng)。所以,解決顯示屏的顯示問(wèn)題,首先要解決的是Frame Buffer的大小以及屏上的每一像素與Frame Buffer的映射關(guān)系。 影響空間大小的因素:由

2、于Frame Buffer空間的計(jì)算大小是以屏幕的大小和顯示模式?jīng)Q定的,所以顯示模式(單色或彩色)、顯示屏的性能、顯示的需要均會(huì)影響Frame Buffer空間的大小。另外顯示屏還有單屏幕、雙屏幕兩種工作模式:?jiǎn)纹聊荒J酱砥聊坏娘@示范圍是整個(gè)屏幕,只需一個(gè)Frame Buffer和一個(gè)通道;雙屏幕模式則將整個(gè)屏幕劃分為兩個(gè)部分,這兩個(gè)部分各自有Frame Buffer,且他們的地址無(wú)需連續(xù),并同時(shí)具有兩個(gè)各自獨(dú)立的通道將Frame Buffer的數(shù)據(jù)傳送到顯示屏。顯示操作及映射連續(xù)性:由于Frame Buffer通常就是從內(nèi)存空間分配所得,并且他是有連續(xù)的字節(jié)空間組成,屏幕的顯示操作通常是從

3、左到右逐點(diǎn)像素掃描,從上到下逐行掃描,直到掃描到右下角,然后再折返到左上角。又由于Frame Buffer里的數(shù)據(jù)是按地址遞增的順序被提取,所以屏幕上相鄰的兩像素被映射到Frame Buffer里是連續(xù)的,并且屏幕最左上角的像素對(duì)應(yīng)Frame Buffer的第一空間單元,屏幕最右下角則對(duì)應(yīng)最后一個(gè)單元空間。Frame Buffer 與色彩 計(jì)算機(jī)反映自然界的顏色是通過(guò)RGB(Red-Green-Blue)值來(lái)表示的。如果要在屏幕某點(diǎn)顯示某種顏色,則必須給出相應(yīng)的RBG值。Frame Buffer是由所有像素的RGB值或RGB值的部分位所組成,本系統(tǒng)使用的16位/像素的模式下,F(xiàn)rame Buf

4、fer里的每個(gè)單元16位,每個(gè)單元代表一個(gè)像素的RGB值,如下圖D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0RRRRRGGGGGGBBBBB有了以上的分析,就可以用下面的計(jì)算公式FrameBufferSize=Width * Height * Bitperpixel/8計(jì)算Frame Buffer的大?。ㄒ宰止?jié)為單位)。(三)LCD控制器 在Frame Buffer與顯示屏之間還需要一個(gè)中間件,該中間件負(fù)責(zé)從Frame Buffer里提取數(shù)據(jù),進(jìn)行處理,并傳輸?shù)斤@示屏上。PXA270處理器內(nèi)部集成LCDC,他提供了一個(gè)從PXA270處理器到顯示屏的接口,LCDC

5、的作用是將Frame Buffer里的數(shù)據(jù)傳輸?shù)絃CDC的內(nèi)部,然后經(jīng)過(guò)處理,輸出數(shù)據(jù)到LCD的輸入引腳上。本實(shí)驗(yàn)系統(tǒng)使用的是16位TFT LCD,像素分辨率是640X480。Frame Buffer 操作 Frame Buffer是一種驅(qū)動(dòng)程序接口,這種接口將顯示設(shè)備抽象為幀緩沖區(qū)。幀緩沖區(qū)為圖像硬件設(shè)備提供了一種抽象化處理,它代表了一些視頻硬件設(shè)備,允許應(yīng)用軟件通過(guò)定義明確的界面來(lái)訪(fǎng)問(wèn)圖像硬件設(shè)備。于是,將幀緩沖區(qū)映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫(xiě)和I/O控制等操作,而寫(xiě)操作可以立即顯示在屏幕上。了解這個(gè)設(shè)備的參數(shù)可以通過(guò)FBIOGET_FSCREENINFO、FBIOGET_VS

6、CREENINFO命令,從中可以獲取顯示器的色味、分辨率等信息(vinfo.bits_per_pixel、vinfo.xres、vinfo.yres)。實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)基本畫(huà)圖功能 在Frame Buffer 基礎(chǔ)上編寫(xiě)畫(huà)點(diǎn)、畫(huà)線(xiàn)的API函數(shù),供應(yīng)用程序調(diào)用,實(shí)現(xiàn)任意曲線(xiàn)的畫(huà)線(xiàn)功能。(二)合理的軟件結(jié)構(gòu) 將調(diào)用設(shè)備驅(qū)動(dòng)的基本API函數(shù)獨(dú)立地構(gòu)成一個(gè)函數(shù)庫(kù),為用戶(hù)程序屏蔽底層硬件信息,直接提供一些簡(jiǎn)單的畫(huà)圖調(diào)用。函數(shù)庫(kù)可以是獨(dú)立編譯后的“.o”文件或由歸檔管理器 ar 生成的庫(kù)文件,或是將“.o”文件鏈接而承認(rèn)那個(gè)的共享庫(kù)“.so”。四、實(shí)驗(yàn)過(guò)程及相關(guān)程序(一)設(shè)備的初始化(LCD_INIT)Fra

7、me Buffer設(shè)備是/dev/fb(它通常是/dev/fb0),對(duì)于該設(shè)備的初始化包括設(shè)備的打開(kāi),通過(guò)ioctl函數(shù)獲得設(shè)備的相關(guān)信息,計(jì)算Frame Buffer緩沖區(qū)的大小以及使用mmap函數(shù)獲取Frame Buffer緩沖區(qū)的首地址。具體程序如下:fd = open(/dev/fb0, O_RDWR);/打開(kāi)設(shè)備 ioctl(fd, FBIOGET_VSCREENINFO, &vinfo);/獲取設(shè)備的相關(guān)信息 printf(%dx%d, %dbppn, vinfo.xres, vinfo.yres, vinfo.bits_per_pixel );/打印相關(guān)信息 screensize

8、 = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; /計(jì)算緩沖區(qū)大小fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE,MAP_SHARED, fd, 0); /獲取緩沖區(qū)首地址設(shè)備的初始化基本就結(jié)束了。(二)設(shè)備的關(guān)閉(LCD_END)設(shè)備關(guān)閉前獲得的緩沖區(qū)應(yīng)先被釋放,接著關(guān)閉設(shè)備。具體程序如下:munmap(fbp,screensize); /緩沖區(qū)釋放close(fd);/關(guān)閉設(shè)備(三)清屏操作(LCD_CLEAR)實(shí)驗(yàn)中的清屏操作,可通過(guò)memset(fbp,0,sc

9、reensize)來(lái)實(shí)現(xiàn),此時(shí)屏幕為黑色。畫(huà)圖程序 1.畫(huà)點(diǎn)程序(draw_point) 畫(huà)點(diǎn)程序程序是整個(gè)畫(huà)圖實(shí)驗(yàn)的基礎(chǔ),其他的畫(huà)圖程序都是建立在畫(huà)點(diǎn)程序上的。畫(huà)點(diǎn)程序主要是解決兩個(gè)問(wèn)題:a、點(diǎn)的坐標(biāo);b、點(diǎn)的顏色。 點(diǎn)的位置的獲取,我們只需要知道該點(diǎn)相對(duì)于緩沖區(qū)首地址的偏移量即可。例如要在(x,y)處顯示一個(gè)點(diǎn),可通過(guò)下面的方法獲取其偏移量: offset = (x+y*vinfo.xres) * vinfo.bits_per_pixel/8;在這之前,我們最好先對(duì)x和y的范圍進(jìn)行一個(gè)判斷,即x和y的值不滿(mǎn)足LCD屏坐標(biāo)范圍時(shí),則對(duì)改點(diǎn)不進(jìn)行操作,方這便我們下面的編程。if(x639|y4

10、79)return;而對(duì)于點(diǎn)得顏色,由于我們使用的LCD屏是16位色的,所以首先必須根據(jù)格式要求將RGB壓縮到16位,再填充對(duì)應(yīng)字節(jié)。相應(yīng)的程序如下: color =(Red 11)|(Green8)&0 xFF。到此為止,一個(gè)完整的畫(huà)點(diǎn)程序就完成了。 其實(shí),我們完全可以把畫(huà)點(diǎn)的顏色也加入其中。在這里,我只列舉了九種顏色,如果想要更多的顏色,可自行加入。int colour_choose(int num)int r,b,g;int col;switch(num)case 0:r=255;b=0;g=0;break; /redcase 1:r=255;b=255;g=0;break; /yell

11、owcase 2:r=0;b=255;g=0;break; /greencase 3:r=160;b=32;g=240;break; /purpiecase 4:r=184;b=143;g=143;break; /rosecase 5:r=0;b=0;g=255;break; /bluecase 6:r=25;b=15;g=80;break; /case 7:r=255;b=255;g=255;break; /writecase 8:r=0;b=0;g=0;break; /blackcol=(r11)|(g=y2)for(i=y2;i=y1;i-) draw_point(x1,i,m);els

12、e for(i=y1;i=x2)for(i=x2;i=x1;i-) draw_point(y1,i,m);else for(i=x1;i 1 | j -1)j=(float)(x2-x1)/(float)(y2-y1); if(y1y2) for(i=y1;i=y2;i-) draw_point(int)(i-y1)*j+x1),i,m); else if(x1x2) for(i=x1;i=x2;i-) draw_point(i,(int)(i-x1)*j+y1),m); 3.畫(huà)圓程序(draw_circle)畫(huà)圓程序其實(shí)也是來(lái)自于畫(huà)點(diǎn)程序,一個(gè)圓由1000個(gè)點(diǎn)組成,而這1000個(gè)點(diǎn)正好滿(mǎn)足同

13、一個(gè)圓方程,這樣由于各個(gè)點(diǎn)間隔非常小,所有看上去就是一個(gè)完整的圓了。相應(yīng)的程序如下:void draw_circle(int R,int x0,int y0,int m) int x,y,i;for(i=0;i1000;i+) x=R*sin(2*PI/1000*i)+x0; y=R*cos(2*PI/1000*i)+y0; draw_point(x,y,m); 畫(huà)實(shí)心圓可以由上面的畫(huà)圓程序得到,我們可以用一個(gè)for循環(huán)將圓的半徑由0遞增到所需要的實(shí)心圓半徑R,這樣一個(gè)半徑為R的實(shí)心圓就能得到了。不過(guò)我們上面已經(jīng)提到了,所畫(huà)的圓其實(shí)是由1000個(gè)點(diǎn)組成的,說(shuō)白了,它其實(shí)并不是一個(gè)真正的圓,這樣

14、,當(dāng)我們將大量的圓和在一起組成一個(gè)實(shí)心圓時(shí),實(shí)心圓內(nèi)部會(huì)出現(xiàn)很多中心對(duì)稱(chēng)的黑色點(diǎn),這其實(shí)就是由于一些點(diǎn)斷斷續(xù)續(xù)沒(méi)有被著色到而造成的。有一個(gè)改進(jìn)的方法就是,我們先選定實(shí)心圓的范圍,再一個(gè)一個(gè)判斷屏幕上的點(diǎn)是否落在這個(gè)范圍之內(nèi),如果是,則對(duì)其著色,反之則放棄著色。不過(guò)這必須對(duì)屏幕上所有的點(diǎn)都進(jìn)行判斷,工作量大,所以本程序還有待提高。相應(yīng)的程序如下:void draw_shi_circle(int R,int x0,int y0,int m) int x,y;for(x=0;x=vinfo.xres;x+)for(y=0;yvinfo.yres;y+)if(x-x0)*(x-x0)+(y-y0)*(

15、y-y0)=R*R)draw_point(x,y,m); 4.畫(huà)旋轉(zhuǎn)五角星程序(draw_star)畫(huà)五角心其實(shí)就是先求出五角星五個(gè)角所相對(duì)應(yīng)的坐標(biāo)值,再把這些點(diǎn)連接起來(lái)。而讓五角星旋轉(zhuǎn)的話(huà),我們只要讓這五個(gè)點(diǎn)沿著一個(gè)角度偏移就可以了,期間再延遲一段時(shí)間并刷一下屏即可。相應(yīng)的程序如下:void draw_star(int l, int x0, int y0) float x1, y1; float x2, y2; float x3, y3; float x4, y4; float x5, y5; int i; for(i=0;i=0;j-)for(i=0;i640;i+)y=j*sin(PI*

16、i/80)+240;draw_point(i,y,m);usleep(10000);lcd_clear(); 6.畫(huà)正十二邊形(draw_dodecagon)這個(gè)程序是實(shí)現(xiàn)畫(huà)正十二邊形,由于我準(zhǔn)備能在屏幕上模擬一個(gè)鐘表,這個(gè)十二邊形的每個(gè)頂點(diǎn)正好是12個(gè)整點(diǎn)值。相應(yīng)程序如下:void draw_dodecagon(int x0,int y0,int R,int m)int x12,y12;int i=0;for (i=0;i12;i+)xi = x0 + R*cos(i*PI/6);yi = y0 + R*sin(i*PI/6);for (i=0;i11;i+)draw_line(xi,yi,

17、xi+1,yi+1,m);draw_line(x11,y11,x0,y0,m); 7畫(huà)鐘表程序(draw_clock) 其實(shí)這個(gè)程序本身并不煩,我先在屏幕上畫(huà)了一個(gè)實(shí)心圓,用于做鐘表的表盤(pán)。然后再調(diào)用劃線(xiàn)函數(shù),畫(huà)三條直線(xiàn),不過(guò)三條直線(xiàn)的長(zhǎng)度各不相同,分別做時(shí)針、分針和秒針,并且它們都延時(shí)一段時(shí)間然后移動(dòng)到下一個(gè)位置。同時(shí),它們?cè)瓉?lái)的位置會(huì)被和表盤(pán)相同顏色的直線(xiàn)蓋住。這樣,我們就會(huì)看到一個(gè)時(shí)鐘顯示在屏幕上。具體程序如下:void draw_clockline(int x0,int y0)int clock_x_miao,clock_y_miao,clock_x_fen,clock_y_fen,c

18、lock_x_shi,clock_y_shi,i;int l=180;for(i=0;i3600;i+)clock_x_fen=x0+l*sin(i*PI/1800)/1.2;clock_y_fen=y0-l*cos(i*PI/1800)/1.2;clock_x_shi=x0+l*sin(i*PI/)/1.5;clock_y_shi=y0-l*cos(i*PI/)/1.5;clock_x_miao=x0+l*sin(i*PI/30);clock_y_miao=y0-l*cos(i*PI/30);draw_line(x0,y0,clock_x_shi,clock_y_shi);draw_line

19、(x0,y0,clock_x_miao,clock_y_miao);draw_line(x0,y0,clock_x_fen,clock_y_fen);usleep();draw_line_one(x0,y0,clock_x_miao,clock_y_miao);draw_line_one(x0,y0,clock_x_fen,clock_y_fen);draw_line_one(x0,y0,clock_x_shi,clock_y_shi);void draw_clock()draw_shi_circle(190,320,240);draw_dodecagon(320,240,200);由于這個(gè)程

20、序是一個(gè)死循環(huán),所以最好在后臺(tái)操作。但是如果把程序送到后臺(tái)時(shí),鍵盤(pán)輸入就會(huì)不起作用。因此,我并沒(méi)有把這段程序放到動(dòng)態(tài)庫(kù)之中。但是,在之前的調(diào)試中,這個(gè)程序能夠顯示,并且達(dá)到了我想要的效果。 8.主函數(shù)(main)由于我們所需要的畫(huà)圖程序以及設(shè)備驅(qū)動(dòng)程序等都已經(jīng)在子函數(shù)中給出了,所以主函數(shù)的任務(wù)就是調(diào)用子函數(shù)來(lái)實(shí)現(xiàn)相應(yīng)的功能。在這里,為了能夠?qū)⒆雍瘮?shù)的功能一一顯示出來(lái),我在這里用了一個(gè)switch的結(jié)構(gòu),我們?cè)阪I盤(pán)上輸入0-5之間的任意數(shù)字,主函數(shù)就做出相應(yīng)的選擇,LCD屏上也會(huì)出現(xiàn)相應(yīng)的圖形,當(dāng)輸入數(shù)字為9時(shí),程序結(jié)束。當(dāng)輸入完成0-5之間的選擇后,此時(shí),我們就可以輸入相應(yīng)圖形的信息,比如畫(huà)圓

21、時(shí),我們就輸入圓的半徑和圓心得位置,劃線(xiàn)則輸入直線(xiàn)的兩個(gè)端點(diǎn)。最后,我們?cè)佥斎?-8之間的一個(gè)數(shù),完成顏色的選擇。這樣,整個(gè)程序就完成了。我們可以實(shí)現(xiàn)圖形形狀可選,所在位置可選,顏色可選等功能。功能相對(duì)比較強(qiáng)大。相應(yīng)的程序如下:int main()int c=0;int x1=0,x2=0,y1=0,y2=0,r=0,m=0;lcd_init();while(c!=9)scanf(%d,&c);switch(c)case 0:lcd_clear();printf(Draw the line :);scanf(%d %d %d %d %d,&x1,&y1,&x2,&y2,&m);draw_lin

22、e(x1,y1,x2,y2,m);break;case 1:lcd_clear();printf(Draw the line :);scanf(%d %d %d %d %d,&x1,&y1,&x2,&y2,&m);draw_line(x1,y1,x2,y2,m);break;case 2:lcd_clear();printf(Draw the circle :);scanf(%d %d %d %d ,&r,&x1,&y1,&m);draw_circle(r,x1,y1,m);break;case 3:lcd_clear();printf(Draw the solid_circle :);sca

23、nf(%d %d %d %d ,&r,&x1,&y1,&m);draw_shi_circle(r,x1,y1,m);break;case 4:lcd_clear();printf(Draw the zhenxianbo :);scanf(%d %d,&x1,&m);draw_zhenxian(x1,m);break;case 5:lcd_clear();printf(Draw the dodecagon :);scanf(%d %d %d %d ,&x1,&y1,&r,&m);draw_dodecagon(x1,y1,r,m);break;default:printf(Wrongn); (5)

24、顯示一幅圖片圖片有jpg、bmp、tiff等格式,本實(shí)驗(yàn)中采用bmp格式的圖片作為顯示樣本。采用bmp格式圖片的原因如下:這種格式的圖片包含的圖像信息較豐富,幾乎不進(jìn)行壓縮。圖像信息包含三個(gè)方面:文件信息頭、位圖信息頭、RGB顏色陣列。文件信息頭和位圖信息頭分別占用了14、40個(gè)字節(jié),RGB顏色陣列從第55個(gè)字節(jié)開(kāi)始。因此只需要從第55個(gè)字節(jié)開(kāi)始讀取圖片的顏色信息,并將其存儲(chǔ)于內(nèi)存空間中,再將存儲(chǔ)的信息顯示在顯示屏上即可。但是有一個(gè)需要注意的地方是,圖片也分成16位色和24位色的。對(duì)于這兩種圖片,顯示的時(shí)候必須分開(kāi)考慮。我們可以先通過(guò)一個(gè)函數(shù)來(lái)讀取圖片的信息,再進(jìn)行下一步操作。具體程序如下:i

25、nt show_bmp( char *bmpfile ) FILE *fp; int rc; int ciBitCount, ciWidth, ciHeight; int line_x, line_y; long int location = 0, BytesPerLine = 0; char tmp1024*10; fp = fopen(./hhh.bmp, rb ); if (fp = NULL) return( -1 ); rc = fread( &FileHead, sizeof(BITMAPFILEHEADER),1, fp ); if ( rc != 1) printf(read

26、header error!n); fclose( fp ); return( -2 ); if (memcmp(FileHead.cfType, BM, 2) != 0) printf(its not a BMP filen); fclose( fp ); return( -3 ); rc = fread( (char *)&InfoHead, sizeof(BITMAPINFOHEADER),1, fp ); if ( rc != 1) printf(read infoheader error!n); fclose( fp ); return( -4 ); ciWidth = (int) c

27、hartolong( InfoHead.ciWidth, 4 ); ciHeight = (int) chartolong( InfoHead.ciHeight, 4 ); ciBitCount = (int) chartolong( InfoHead.ciBitCount, 4 );fseek(fp, (int)chartolong(FileHead.cfoffBits, 4), SEEK_SET);BytesPerLine = (ciWidth * ciBitCount + 31) / 32 * 4; printf(width=%d, height=%d, bitCount=%d, off

28、set=%dn, ciWidth, ciHeight, ciBitCount, (int)chartolong(FileHead.cfoffBits, 4); line_x = 0;line_y = 0;while(!feof(fp)PIXEL pix;unsigned short int tmp;rc = fread( (char *)&pix, 1, sizeof(unsigned short int), fp );if (rc != sizeof(unsigned short int) ) break; location = line_x * bits_per_pixel / 8 + (

29、ciHeight - line_y - 1) * xres * bits_per_pixel / 8;tmp=pix.red11 | pix.green6 | pix.blue;*(unsigned short int*)(fbp + location) = tmp; location = (line_x+line_y*vinfo.xres) * vinfo.bits_per_pixel/8; tmp =(r 11)|(g8)&0 xFF;line_x+;if (line_x = ciWidth )line_x = 0;line_y+;if(line_y=ciHeight-1)break; f

30、close( fp ); return( 0 );long chartolong( char * string, int length ) long number; if (length = 4) memset( &number, 0 x00, sizeof(long) ); memcpy( &number, string, length ); return( number );這段源程序是從網(wǎng)上找的,然后再進(jìn)修改,最終能把圖片顯示在液晶屏上。(五)將基本API函數(shù)獨(dú)立的構(gòu)成函數(shù)庫(kù)靜態(tài)庫(kù)的制作將所有的畫(huà)圖子程序放在一起(draw.c),將初始化程序、清屏程序和關(guān)閉設(shè)備程序放在一起(init.c),再執(zhí)行以下操作:arm-linux-gcc -c

溫馨提示

  • 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)論