Могу ли я получить пример кода opengl для непрерывного уменьшения размера сферы с помощью анимации
Я пытался непрерывно уменьшать радиус сферы с помощью петли, но это, похоже, не работает.Анимация для увеличения размера сферы работает нормально.
Не в состоянии понять, почему уменьшающийся радиус не визуализируется.
Я прошу всех поделиться любым примером кода, который может помочь плавно анимировать то же самое.
Спасибо.
Что я уже пробовал:
#include<windows.h> #include<GL/glut.h> int r=1,flag=0; void drawSphere(int r1) { glutSolidSphere(r1,30,30); glFlush(); } void displaySolid() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3d(1,0,0); drawSphere(100); glFlush(); } void animate(int btn,int state,int x,int y) { if(btn==GLUT_LEFT_BUTTON && state==GLUT_DOWN) { for(r=200;r<400;r+=3) { drawSphere(r); //glutPostRedisplay(); Sleep(100); flag=1; } r=100; } if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) { for(r=60;r>=30;r--) { drawSphere(r); Sleep(100); } } } int main(int argc,char **argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH); glutInitWindowSize(700,700); glutInitWindowPosition(0,0); glutCreateWindow("sphere test"); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-500,500,-500,500,-500,500); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glutDisplayFunc(displaySolid); glutMouseFunc(animate); glEnable(GL_DEPTH_TEST); glutMainLoop(); return 0; }