Translate

tutorial graphic halaman 6

Selamat datang di eagleboot dan selamat membaca.

11.4. Animasi Grafik

 Pembuatan animasi bentuk- bentuk dasar dalam OpenGL telah disediakan. Untuk dapat memanfaatkannya kita harus memahami perintah-perintah itu beserta arti argumen-argumen yang dipakainya. Sebagai contoh akan dibuat sebuah program yang menganimasi kotak. Cermati program berikut:  Program 11.4 

#include<windows.h> #include<gl/gl.h> /************************** *FunctionDeclarations **************************/ LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage, WPARAMwParam,LPARAMlParam); voidEnableOpenGL(HWNDhWnd,HDC*hDC,HGLRC*hRC); voidDisableOpenGL(HWNDhWnd,HDChDC,HGLRChRC); /************************** *WinMain **************************/ intWINAPIWinMain(HINSTANCEhInstance, HINSTANCEhPrevInstance, LPSTRlpCmdLine, intiCmdShow) { WNDCLASSwc; HWNDhWnd; HDChDC; HGLRChRC; MSGmsg; BOOLbQuit=FALSE; floattheta=0.0f; /*registerwindowclass*/ wc.style=CS_OWNDC; wc.lpfnWndProc=WndProc; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hInstance; wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); wc.hCursor=LoadCursor(NULL,IDC_ARROW); wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wc.lpszMenuName=NULL; wc.lpszClassName="GLSample"; RegisterClass(&wc); /*createmainwindow*/ hWnd=CreateWindow( "GLSample","OpenGLSample", WS_CAPTION|WS_POPUPWINDOW|WS_VISIBLE, 0,0,256,256, NULL,NULL,hInstance,NULL); /*enableOpenGLforthewindow*/ EnableOpenGL(hWnd,&hDC,&hRC); /*programmainloop*/ while(!bQuit) { /*checkformessages*/ if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { /*handleordispatchmessages*/ if(msg.message==WM_QUIT) { bQuit=TRUE; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } else { /*OpenGLanimationcodegoeshere*/ glClearColor(1.0f,1.0f,1.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef(theta,0.0f,0.0f,1.0f); glBegin(GL_QUADS); glColor3f(1.0f,0.0f,0.0f);glVertex2f(‐0.5f,0.5f); glColor3f(0.0f,1.0f,0.0f);glVertex2f(0.5f,0.5f); glColor3f(0.0f,0.0f,1.0f);glVertex2f(0.5f,‐0.5f); glColor3f(0.0f,0.0f,0.0f);glVertex2f(‐0.5f,‐0.5f); glEnd(); glPopMatrix(); SwapBuffers(hDC); theta+=1.0f; Sleep(1); } } /*shutdownOpenGL*/ DisableOpenGL(hWnd,hDC,hRC); /*destroythewindowexplicitly*/ DestroyWindow(hWnd); returnmsg.wParam; } /******************** *WindowProcedure ********************/ LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage, WPARAMwParam,LPARAMlParam) { switch(message) { caseWM_CREATE: return0; caseWM_CLOSE: PostQuitMessage(0);

Next read halaman 7.

Share this

Related Posts

Previous
Next Post »