![圖形學(xué)實驗報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/16/bc31fed4-fadd-4c4f-8238-3ac555963bf3/bc31fed4-fadd-4c4f-8238-3ac555963bf31.gif)
![圖形學(xué)實驗報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/16/bc31fed4-fadd-4c4f-8238-3ac555963bf3/bc31fed4-fadd-4c4f-8238-3ac555963bf32.gif)
![圖形學(xué)實驗報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/16/bc31fed4-fadd-4c4f-8238-3ac555963bf3/bc31fed4-fadd-4c4f-8238-3ac555963bf33.gif)
![圖形學(xué)實驗報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/16/bc31fed4-fadd-4c4f-8238-3ac555963bf3/bc31fed4-fadd-4c4f-8238-3ac555963bf34.gif)
![圖形學(xué)實驗報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/16/bc31fed4-fadd-4c4f-8238-3ac555963bf3/bc31fed4-fadd-4c4f-8238-3ac555963bf35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計 報 告實驗名稱: 計算機圖形學(xué)實驗 目 錄1.1 實驗?zāi)康呐c要求.11.2 實驗任務(wù)內(nèi)容與步驟.1實驗一.1 實驗二.31.3 實驗結(jié)果.3實驗一結(jié)果.3實驗二結(jié)果.81.4 心得體會.81.5 源代碼.91.1 實驗?zāi)康呐c要求:目的: 利用OpenGL庫,對課本的圖形原理進(jìn)行C語言編程,從而實現(xiàn)各種繪圖算法。從中進(jìn)一步了解計算機圖形學(xué)的原理,加深對課程內(nèi)容的理解,逐步掌握算法原理的實現(xiàn)過程。另外,初步掌握OpenGL的基本使用方法,能夠使用其進(jìn)行簡單圖形、圖素的繪制。 實驗要求:I(1)理解glut程序框架(2)理解窗口到視區(qū)的變換(3)理解OpenGL實現(xiàn)動畫的原理(4)添
2、加代碼實現(xiàn)中點Bresenham算法畫直線(5)添加代碼實現(xiàn)改進(jìn)Bresenham算法畫直線(6)添加代碼實現(xiàn)圓的繪制(可以適當(dāng)對框架坐標(biāo)系進(jìn)行修改II.(1)理解OpenGL中的變換過程(2)理解透視投影與平行投影的不同(3)添加代碼實現(xiàn)太陽、地球和月亮的運動模型(4)了解深度測試(5)通過變換調(diào)整觀察的位置與方向(6)加入光照模型 1.2 實驗內(nèi)容和實驗步驟:實驗一、利用各種算法實現(xiàn)直線與圓的掃描轉(zhuǎn)換,在對應(yīng)圖中顯示的同時,還要在控制臺中打印顯示像素點的坐標(biāo),以及誤差d,e的值。(1)中點Bresenham算法利用中點Bresenham算法畫出直線,其中直線的斜率要求為:0<=k&l
3、t;=1.具體參數(shù)如下: x0,y0 起點坐標(biāo)x1,y1 終點坐標(biāo)num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目算法實現(xiàn)流程步驟: 1. 對斜率k以及掃描點個數(shù)進(jìn)行可行性判斷。 2通過起始點和終點,確定最大位移方向。 3. 算出d0,以及dx,dy,由最大位移方向確定dx,dy在不同情況下的增量UpIncre,DownIncre。 4. 通過循環(huán)根據(jù)di逐步確定xi,yi,從而完成直線繪制。(2)改進(jìn)的Bresenham算法利用改進(jìn)的Bresenham算法畫出直線,其中直線的斜率要求為:0<=k<=1.具體參數(shù)如下: x0,y0 起點坐標(biāo)x1,y1 終點坐標(biāo)num 掃描轉(zhuǎn)換時從起點開始
4、輸出的點的數(shù)目算法實現(xiàn)流程步驟: 1. 對斜率k以及掃描點個數(shù)進(jìn)行可行性判斷。 2通過起始點和終點,確定最大位移方向。 3. 算出dx,dy,由最大位移方向確定變化量e。 4. 通過循環(huán)根據(jù)逐步確定xi,yi,以及修改ei的值從而完成直線繪制。(3)Bresenham算法畫圓利用圓對稱性八分法,以及Bresenham算法畫圓。具體參數(shù)如下: x,y 圓心坐標(biāo) R 圓半徑 num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目 算法實現(xiàn)流程步驟: 1. 設(shè)置起點坐標(biāo),以及誤差d0初始值。 2導(dǎo)出d在不同情況下的遞推公式,以及x和y變化的范圍(在 八分之一圓弧范圍內(nèi))。 3. 根據(jù)x,y的界限設(shè)置循環(huán): :按
5、照八分法在不同位置同步顯示像素點。 :打印所顯示像素點的坐標(biāo)。 :由遞推公式更新d以及x,y的值。實驗二、根據(jù)原子核轉(zhuǎn)動的模型,仔細(xì)研讀代碼,修改成:月球繞地球旋轉(zhuǎn),地球繞太陽旋轉(zhuǎn)的地月模型。同時要求,各個天體用不同的顏色相區(qū)分,通過代碼添加地球與月亮受太陽光照反射的光照效果。步驟:(1) 初始化各種屬性,光源顏色,材質(zhì)屬性,深度測試,多邊形表示的方法以及背景顏色。(2) 設(shè)置視區(qū)的大小尺寸,同時對空間進(jìn)行修剪,確定觀察空間。(3) 在函數(shù)模塊RenderScene中添加月亮繞地球旋轉(zhuǎn)的恢復(fù)矩陣;再添加一個類似于電子的屬性表,用以描述月亮;同時修改各個天體的顏色,用以區(qū)分。(4) 調(diào)整各個天體
6、的大小,同時對最大的天體太陽的顯示邊數(shù)進(jìn)行修改,增加其邊數(shù)使太陽邊界更為圓滑。(5) 為月球繞地球的旋轉(zhuǎn)添加新的旋轉(zhuǎn)步長,使得月亮繞地球以及地球繞太陽旋轉(zhuǎn)的速度有所區(qū)分,模擬出地月運行的效果。(6) 在initial初始化函數(shù)中添加設(shè)置光照的代碼,同時把光照效果中光源的坐標(biāo)位置設(shè)置為與太陽坐標(biāo)位置相同。(7) 調(diào)試運行觀察運行的情況,著重檢查:天體間的運行是否具有相對獨立性;光照效果中,由于太陽本身是光源因此不應(yīng)該存在光照效果1.3 實驗結(jié)果:實驗一、(1)DDA畫線算法:圖1.1各像素點坐標(biāo):圖1.2(2) 中點Bresenham算法:掃描轉(zhuǎn)化情況:圖1.3像素點機誤差d的值:圖1.4(3)
7、 改進(jìn)的Bresenham算法 掃描轉(zhuǎn)化結(jié)果:圖1.5像素點坐標(biāo)及誤差e:圖1.6(3)Bresenham算法畫圓圓的掃描轉(zhuǎn)化: 圖1.7 圖1.8 圖1.9 圖1.10圓的像素點坐標(biāo)值及誤差d: 圖1.11 圖1.12實驗二、地月模型結(jié)果:圖2.1圖2.21.4 心得體會: 本次實驗,通過OpenGL的圖形庫實現(xiàn)了各種圖形的掃描算法。在把用數(shù)學(xué)和自然語言描述的算法轉(zhuǎn)化成C語言代碼從而付諸于程序?qū)崿F(xiàn)的過程中,也加深了對各個算法的理解。通過運行各個算法,尤其是直線掃描的各個算法的結(jié)果,可以看出各個算法的執(zhí)行結(jié)果并不一致,直線不滑行在不同的情況下也有所區(qū)別,這是僅僅通過學(xué)習(xí)算法原理所不能獲得的體會
8、。而且程序運行的過程是一步步分解的過程,例如八分法畫圓的算法,就可以看出從圓弧生成真?zhèn)€圓形的全過程,是化抽象為具體的一個很好的例子。另一方面,在OpenGL圖形庫的幫助下,完成了很多復(fù)雜的圖形程序,如地月模型,也讓我認(rèn)識的這個圖形庫功能的強大。而在助教檢查驗收時,對我們提出的種種問題,有時候也沒法及時回答上來,這是自己對算法了解仍不夠透徹的體現(xiàn),希望以后多加努力。總而言之,本次實驗通過化抽象為具體,使我能夠直觀地認(rèn)識到圖形學(xué)中很多算法的執(zhí)行原理與效果,是對課程的一次很好的延伸與拓展。1.5 源程序:實驗一、#include <windows.h>#include <gl/gl
9、ut.h>#include "stdio.h"int m_PointNumber = 0; /動畫時繪制點的數(shù)目int m_DrawMode = 1; /繪制模式 1 DDA算法畫直線 / 2 中點Bresenham算法畫直線 / 3 改進(jìn)Bresenham算法畫直線 / 4 八分法繪制圓 / 5 四分法繪制橢圓void DrawCordinateLine(void)int i = 0 ;/坐標(biāo)線為黑色glColor3f(0.0f, 0.0f ,0.0f);glBegin(GL_LINES); for (i=10;i<=250;i=i+10)glVertex2f
10、(float)(i), 0.0f);glVertex2f(float)(i), 250.0f);glVertex2f(0.0f, (float)(i);glVertex2f(250.0f, (float)(i);glEnd();/繪制一個點,這里用一個正方形表示一個點。void putpixel(GLsizei x, GLsizei y)glRectf(10*x,10*y,10*x+10,10*y+10);/DDA畫線算法 /參數(shù)說明:x0,y0 起點坐標(biāo) / / x1,y1 終點坐標(biāo) / / num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目,用于動畫 / void DDACreateLine(GL
11、sizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num)/設(shè)置顏色glColor3f(1.0f,0.0f,0.0f);/對畫線動畫進(jìn)行控制if(num = 1)printf("DDA畫線算法:各點坐標(biāo)n");else if(num=0)return;/畫線算法的實現(xiàn)GLsizei dx,dy,epsl,k;GLfloat x,y,xIncre,yIncre;dx = x1-x0;dy = y1-y0;x = x0;y = y0;if(abs(dx) > abs(dy) epsl = abs(dx);else
12、epsl = abs(dy);xIncre = (float)dx / epsl ;yIncre = (float)dy / epsl ;for(k = 0; k<=epsl; k+)putpixel(int)(x+0.5), (int)(y+0.5);if (k>=num-1) printf("x=%f,y=%f,取整后 x=%d,y=%dn", x, y, (int)(x+0.5),(int)(y+0.5);break;x += xIncre;y += yIncre;if(x >= 25 | y >= 25) break;/中點Bresenham
13、算法畫直線(0<=k<=1) /參數(shù)說明:x0,y0 起點坐標(biāo) / / x1,y1 終點坐標(biāo) / / num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目,用于動畫 / void BresenhamLine(GLsizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num)glColor3f(1.0f,0.0f,0.0f);int k=0;if(num = 1)printf("中點Bresenham算法畫直線:各點坐標(biāo)及判別式的值n");else if(num=0)return;GLsizei dx,dy,d,UpIn
14、cre,DownIncre,x,y,xend;if(x0>x1)x=x1;x1=x0;x0=x;y=y1;y1=y0;y0=y;x=x0;y=y0;dx=x1-x0;dy=y1-y0;d=dx-2*dy;UpIncre=2*dx-2*dy;DownIncre=-2*dy;while(x<=x1)putpixel(x,y);if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", x, y,d);break;k+;x+;if(d<0)y+;d+=UpIncre;elsed+=DownIncre;/改進(jìn)的Bresenham算
15、法畫直線(0<=k<=1) /參數(shù)說明:x0,y0 起點坐標(biāo) / / x1,y1 終點坐標(biāo) / / num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目,用于動畫 / void Bresenham2Line(GLsizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num)glColor3f(1.0f,0.0f,0.0f);if(num = 1)printf("改進(jìn)的Bresenham算法畫直線:各點坐標(biāo)及判別式的值n");else if(num=0)return;int k=0;GLsizei x,y,dx,dy,e
16、;dx=x1-x0;dy=y1-y0;e=-dx;x=x0;y=y0;while(x<=x1)if (k>=num-1) printf("取整后 x=%d,y=%d,e=%dn", x, y,e);break;k+;putpixel(x,y);x+;e=e+2*dy;if(e>0)y+;e=e-2*dx;/Bresenham算法畫圓 /參數(shù)說明:x,y 圓心坐標(biāo) / / R 圓半徑 / / num 掃描轉(zhuǎn)換時從起點開始輸出的點的數(shù)目,用于動畫 / void BresenhamCircle(GLsizei x, GLsizei y, GLsizei R, G
17、Lsizei num)glColor3f(1.0f,0.0f,0.0f);if(num = 1)printf("Bresenham算法畫圓:各點坐標(biāo)及判別式的值n");int i=1;GLsizei d,swap;x=0;y=R;d=1-R;int k=0;for(i=1;i<=2;i+) x=0;y=R;d=1-R;while(x<=y)if(i=1)if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13+x, 13+y,d);break;k+;putpixel(13+x,13+y);if (k&
18、gt;=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13-x, 13+y,d);break;k+;putpixel(13-x,13+y);if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13-x, 13-y,d);break;k+;putpixel(13-x,13-y);if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13+x, 13-y,d);break;k+;putpixel(13+x,13-y);elseif
19、 (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13+y, 13+x,d);break;k+;putpixel(13+y,13+x);if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13-y, 13+x,d);break;k+;putpixel(13-y,13+x);if (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13-y, 13-x,d);break;k+;putpixel(13-y,13-x);if
20、 (k>=num-1) printf("取整后 x=%d,y=%d,d=%dn", 13+y, 13-x,d);break;k+;putpixel(13+y,13-x);if(d<0)d+=2*x+3;elsed+=2*(x-y)+5;y-;x+;/初始化窗口void Initial(void) / 設(shè)置窗口顏色為藍(lán)色 glClearColor(1.0f, 1.0f, 1.0f, 1.0f);/ 窗口大小改變時調(diào)用的登記函數(shù)void ChangeSize(GLsizei w, GLsizei h)if(h = 0)h = 1;/ 設(shè)置視區(qū)尺寸 glViewpor
21、t(0, 0, w, h);/ 重置坐標(biāo)系統(tǒng)glMatrixMode(GL_PROJECTION);glLoadIdentity();/ 建立修剪空間的范圍 if (w <= h) glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0, -1.0); else glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0, -1.0);/ 在窗口中繪制圖形void ReDraw(void)/用當(dāng)前背景色填充窗口glClear(GL_COLOR_BUFFER_BIT);/畫出坐標(biāo)線DrawCordinateLine();swi
22、tch(m_DrawMode)case 1:DDACreateLine(0,0,20,15,m_PointNumber);break;case 2:BresenhamLine(0,0,20,15,m_PointNumber);break;case 3:Bresenham2Line(0,0,20,15,m_PointNumber);break;case 4:BresenhamCircle(0,0,10,m_PointNumber);break;default:break; glFlush();/設(shè)置時間回調(diào)函數(shù)void TimerFunc(int value)if(m_PointNumber =
23、 0)value = 1;m_PointNumber = value;glutPostRedisplay();glutTimerFunc(500, TimerFunc, value+1);/設(shè)置鍵盤回調(diào)函數(shù)void Keyboard(unsigned char key, int x, int y) if (key = '1') m_DrawMode = 1;if (key = '2') m_DrawMode = 2;if (key = '3') m_DrawMode = 3;if (key = '4') m_DrawMode =
24、4;m_PointNumber = 0;glutPostRedisplay();/void main(void)int main(int argc, char* argv)glutInit(&argc, argv);/初始化GLUT庫OpenGL窗口的顯示模式glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(600,600);glutInitWindowPosition(100,100);glutCreateWindow("基本圖元繪制程序"); glutDisplayFunc(ReDra
25、w); glutReshapeFunc(ChangeSize); glutKeyboardFunc(Keyboard);/鍵盤響應(yīng)回調(diào)函數(shù)glutTimerFunc(500, TimerFunc, 1); / 窗口初始化 Initial();glutMainLoop(); /啟動主GLUT事件處理循環(huán)return 0;實驗二、#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glut.h>void Initial()/太陽白色光源GLfloat mat_am
26、bient=0.2f,0.2f,0.2f,0.1f;GLfloat mat_diffuse=0.9f,0.9f,0.9f,1.0f;GLfloat mat_specular=1.0f,1.0f,1.0f,1.0f;GLfloat mat_shininess=25.0f;GLfloat mat_emission=0.0f,0.0f,0.0f,1.0f;GLfloat light0_diffuse=1.0f,1.0f,1.0f,1.0f;GLfloat light0_position=0.0f,30.0f,-250.0f,1.0f;/GLfloat light1_ambient=0.2f,0.2f
27、,0.2f,1.0f;/GLfloat light1_diffuse=0.2f,0.2f,0.2f,1.0f;/GLfloat light1_position=0.0f,0.0f,250.0f,0.0f;GLfloat spot_direction=1.0f,1.0f,-1.0f;/定義材質(zhì)屬性glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);glMaterialfv
28、(GL_FRONT,GL_SHININESS,mat_shininess);glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission);glLightfv(GL_LIGHT0,GL_DIFFUSE,light0_diffuse);glLightfv(GL_LIGHT0,GL_POSITION,light0_position);/glLightfv(GL_LIGHT1,GL_DIFFUSE,light1_diffuse);/glLightfv(GL_LIGHT1,GL_POSITION,light1_position);/glLightModefv(GL_LI
29、GHT_AMBIENT,1.0f,1.0f,1.0f,1.0f);glColorMaterial(GL_FRONT_AND_BACK,GL_EMISSION);glEnable(GL_COLOR_MATERIAL);glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);glEnable(GL_DEPTH_TEST);/ 啟用深度測試glFrontFace(GL_CCW);/ 指定逆時針繞法表示多邊形正面glClearColor(1.0f, 1.0f, 1.0f, 1.0f );/背景為白色void ChangeSize(int w, int h)if(h = 0)
30、h = 1;/ 設(shè)置視區(qū)尺寸 glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();/ 設(shè)置修剪空間GLfloat fAspect;fAspect = (float)w/(float)h;gluPerspective(45.0, fAspect, 1.0, 500.0);/* if (w <= h) glOrtho (-nRange, nRange, nRange*h/w, -nRange*h/w, -nRange*2.0f, nRange*2.0f);else glOrtho (-nRange*w/h,
31、nRange*w/h, nRange, -nRange, -nRange*2.0f, nRange*2.0f);*/gluPerspective(45.0,(double)w/(double)h,0,0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();void RenderScene(void)/ 繞原子核旋轉(zhuǎn)的角度static float fElect1 = 0.0f; static float fElect11 = 0.0f;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);/ 重置模型視圖矩陣glMatrixMode(GL_MODELVIEW);glLoadIdentity();/將圖形沿z軸負(fù)向移動glTranslatef(0.0f, 30.0f, -250.0f);/ 繪制紅色的原子核glColor3f(1.0f, 0.0f, 0.0f);glutSolidSphere(20.0f, 55, 55);/ 當(dāng)前繪制顏色變?yōu)閘an色glColor3f(0.0f, 0.0f, 1.0f);/繪制第一個ear
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)二年級數(shù)學(xué)乘法口算測試題人教版
- 醫(yī)院網(wǎng)絡(luò)安全保密協(xié)議書范本
- 財產(chǎn)抵押借款合同范本
- 2025年度食堂窗口員工培訓(xùn)及管理服務(wù)合同
- 二零二五年度國際貨運代理合同書協(xié)議書
- 二零二五年度集體魚塘承包與漁業(yè)法律法規(guī)咨詢合同范本
- 二零二五年度實習(xí)生薪資及培訓(xùn)費用補充協(xié)議
- 人教版道德與法治九年級下冊5.1《走向世界大舞臺》聽課評課記錄1
- 二零二五年度茶葉加盟店營銷推廣合作協(xié)議
- 二零二五年度物業(yè)與業(yè)主之間安全隱患賠償合同
- 現(xiàn)代通信原理與技術(shù)(第五版)PPT全套完整教學(xué)課件
- 社區(qū)獲得性肺炎教學(xué)查房
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護技術(shù)要求
- DB31T 685-2019 養(yǎng)老機構(gòu)設(shè)施與服務(wù)要求
- 燕子山風(fēng)電場項目安全預(yù)評價報告
- 高一英語課本必修1各單元重點短語
- 糖尿病運動指導(dǎo)課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 心腦血管病的危害教學(xué)課件
評論
0/150
提交評論