Presentation is loading. Please wait.

Presentation is loading. Please wait.

دوران شكل، رسم اشكال 3D مركز تحصيلات تكميلي در علوم پايه زنجان بخش فن‌آوري اطلاعات گرافيك كامپيوتري قسمت پنجم سري آموزش هاي OpenGL.

Similar presentations


Presentation on theme: "دوران شكل، رسم اشكال 3D مركز تحصيلات تكميلي در علوم پايه زنجان بخش فن‌آوري اطلاعات گرافيك كامپيوتري قسمت پنجم سري آموزش هاي OpenGL."— Presentation transcript:

1 دوران شكل، رسم اشكال 3D مركز تحصيلات تكميلي در علوم پايه زنجان بخش فن‌آوري اطلاعات گرافيك كامپيوتري قسمت پنجم سري آموزش هاي OpenGL

2 تعريف دو متغير جديد  براي دوران يك شكل بايد در هر لحظه موقعيت چرخش شكل در صفحه را در جايي ذخيره كنيم.  در اينجا ما يك مثل و مربع داريم و مي خواهيم آنها را حول دو محور دوران دهيم.  GLfloat rtri;  GLfloat rquad;

3 تابع دوران  glRotatef(Angle,Xvector,Yvector,Zvecto r)  اين تابع با گرفتن 4 آرگمان دوران به شكل اعمال مي نمايد.  Angle: ميزان زاويه گردش شكل  Xvector: ميزان دوران در راستاي محور X  Yvector: ميزان دوران در راستاي محور Y  Zvector: ميزان دوران در راستاي محور Z

4 محل قرار گيري تابع دوران int DrawGLScene(GLvoid){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(-1.5f,0.0f,-6.0f); glRotatef(rtri,0.0f,1.0f,0.0f); glBegin(GL_TRIANGLES); glEnd(); rtri+=0.2f; rquad-=0.15f; return TRUE; }

5 تغيير متغيرها  در هر بار تازه سازي صفحه ميزان متغيرزاويه اگر تغيير كند شكل مي گردد.  براي نمونه در قطعه كد قبل دو مقدار متغير در هر بار تازه سازي صفحه اضافه مي شود.  rtri+=0.2f;  rquad-=0.15f;

6 خروجي

7 رسم اشكال 3D  براي رسم اشكال سه بعدي تنها كافي است كه چند نتقطه جديد را براي بعد هاي ديگر شكل خود را اضافه نماييد.  در اينجا يك نمونه كد آورده مي شود كه به مثلث و مربع مثال قبل يك بعد ديگر اضافه مي كند.  هر گوشه آنها را به رنگ خاصي در مي آورد

8 رسم مثلث سه بعدي glBegin(GL_TRIANGLES); glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right)

9 رسم مثلث سه بعدي - 2 glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) glEnd();

10 رسم مربع سه بعدي glBegin(GL_QUADS); glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top) glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top) glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top) glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top) glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom) glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom) glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom) glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom)

11 رسم مربع سه بعدي - 2 glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front) glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front) glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front) glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front) glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back) glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back) glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back) glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back)

12 رسم مربع سه بعدي - 3 glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left) glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left) glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left) glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Left) glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right) glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right) glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right) glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right) glEnd();

13 خروجي

14 پايان قسمت پنجم  فايل هاي آماده اين قسمت:  opengl_rotat.cpp  opengl_3d.cpp  باتشكر  پدارم حياتي – pedram@iasbs.ac.irpedram@iasbs.ac.ir  محمد رضا خلقتي – m_khelghati@iasbs.ac.ir m_khelghati@iasbs.ac.ir  خرداد 1385


Download ppt "دوران شكل، رسم اشكال 3D مركز تحصيلات تكميلي در علوم پايه زنجان بخش فن‌آوري اطلاعات گرافيك كامپيوتري قسمت پنجم سري آموزش هاي OpenGL."

Similar presentations


Ads by Google