بلييز أبغى أحد يشرحلي هذا الكود بالتفصيل بسرعة
#include <windows.h>
#include<GL/glut.h>
static float fRotAngle = 0.0;
void Keyboard( unsigned char uKey, int x, int y )
{
//åäÇ ÇÐÇ ÖÛØ ESC ÊÊÓßÑ ÇáäÇÝÐå //
switch ( uKey )
{
case VK_ESCAPE:
exit( 0 );
break;
}
}
void Resize( int iWidth, int iHeight )
{
//åäÇ ááäÇÝÐå ÊÕÛíÑ æÊßÈíÑ //
//Set the viewport dimensions:
glViewport( 0, 0, (GLsizei)iWidth, (GLsizei)iHeight );
// Switch to the projection matrix:
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
// Define the projection transformation matrix. Notice that this is using
// glFrustum instead of gluPerspective:
glFrustum( -1.0f, 1.0f, -1.0f, 1.0f, 1.5f, 20.0f );
// Switch back to the modelview matrix:
glMatrixMode( GL_MODELVIEW );
}
void DrawTriangle (void)
//åäÇ ÍØæÇ Ãí Ôßá ÊÈæäå í쾄 ,, ÈÇáÓÄÇá ÃÎÊÑäÇ ãËáË //
{
glBegin(GL_TRIANGLES);
glColor3f(1, 0, 0);
glVertex3f(-1.0f, -0.5f, 0.0f);
glColor3f(1, 0, 0);
glVertex3f( 1.0f, -0.5f, 0.0f);
glColor3f(1, 0, 0);
glVertex3f( 0.0f, 0.5f, 0.0f);
glEnd();
}
void draw()
{
glClear( GL_COLOR_BUFFER_BIT );
glLoadIdentity();
glTranslatef( 0.0f, 0.0f, -5.0f );
//åäÇ Çááí ÈÇáÇÍãÑ íÚäí ÇáÔßá íÏæÑ Íæá z
//ØÈÚÇ ÇáÈÑÇãíÊÑ ÇáÇæá íÞÕÏ ÇáÔßá í쾄 Úáì x æÇáËÇäí ÏíæÑ Úáì y æÇáËÇáË ãËá ãÇÓæíäÇ æäÔØäÇåÇ ÈÞíãÉ 1 Úáì z
glRotatef( fRotAngle, 0.0f, 0.0f, 1.0f );
fRotAngle += 0.5f;
if (fRotAngle==360.0)fRotAngle=0.0;
DrawTriangle ();
glutSwapBuffers();
}
void Timer( int iValue )
{
glutPostRedisplay();
glutTimerFunc( 1, Timer, iValue );
//íÞÕÏ ßá 1 ËÇäíå í쾄 ÇáÔßá
}
int main( int argc, char **argv )
{
glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
glutInitWindowPosition( 0, 0 );
glutInitWindowSize( 256, 256 );
glutInit( &argc, argv );
glutCreateWindow( "animation program" );
glutKeyboardFunc( Keyboard );
glutReshapeFunc( Resize );
glutDisplayFunc( draw );
glutTimerFunc( 1, Timer, 1 );
glutMainLoop();
return 0;
}
