PDA

View Full Version : سوال: تابع idle در opengl



mehran788
جمعه 24 خرداد 1392, 05:48 صبح
با سلام و خسته نباشید
من برای دوران اشکال تو opengl با استفاده از تابع idle این کد رو نوشتم ولی کار نمی کنه کسی می تونه اسکالش رو به من بگه؟

// Sample 12.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>
#include <glut.h>

float wc=0.0f;

void init()
{
glClearColor(0,0,0,0);
glShadeModel (GL_SMOOTH);
}

void idle()
{
wc=wc+0.1f;
glutPostRedisplay();
}

void display()
{
glColor3f(1,1,0);
glRotatef(wc,0,1,0);
glutSolidTeapot(0.5);
glutSwapBuffers();
glFlush();
}

void main(int argc,char**argv)
{
glutInit (&argc,argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (800,800);
glutInitWindowPosition(100,100);
glutCreateWindow("Sample 12");
init();
glutDisplayFunc (display);
glutIdleFunc(idle);
glutMainLoop();
}

خواهش می کنم اگه کسی می دونه کمکم کنه
ممنون

orache
جمعه 24 خرداد 1392, 06:27 صبح
اینو که خودت ننوشتی کپی کردی نوشته سمپل 12 :لبخند:
کد چرخش درست کار میکنه منتها باید صفحه رو پاک کنی که اینکار رو نکردی
تو اول تابع صفحه یعنی display این کد رو اضافه کن

glClear(GL_COLOR_BUFFER_BIT);
البته وقتی متغیر رو زیاد میکنی تا بینهایت میره و همین باعث پلک زدن میشه البته واسه یه قوری نه مثلا اگه 4 _ 5 تا مدل وارد کردی .

mehran788
جمعه 24 خرداد 1392, 07:58 صبح
خوب این 12 همین تمرین از بین اون تمرین ها بود دیگه.از روی جزوه ای که داشتم یه چیزایی نوشتم ولی آخرش هم کار نکرد.:لبخند:
ممنون از لطفت

orache
جمعه 24 خرداد 1392, 12:52 عصر
الان بالاخره چی شد کار کرد یا خیر ؟؟

mehran788
جمعه 24 خرداد 1392, 13:56 عصر
بله.ممنون.کار کرد