PDA

View Full Version : مبتدی: شفاف سازی ترسیمات



mehran788
یک شنبه 26 خرداد 1392, 15:47 عصر
با سلام و خسته نباشید
من سه تا شکل تو صفحه دارم که می خوام شفاف سازی رو اینها اعمال کنم.کد هایی که برای شفاف سازی استفاده میشه رو تا اونجا که می تونم طبق اصولش نوشتم ولی بازم کار نکرد.
میشه کسی بهم بگه مشکل کدهای من چیه؟
#include <glut.h>

float a=0,b=0,c=0 ,d=0 ,p=1 ;
int w=600,h=600;

void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glEnable(GL_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR,GL_ONE);
glBlendFunc(GL_ONE,GL_ZERO);
}

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f(1,0,0);
glRotatef(a,1,0,0);
glBegin(GL_TRIANGLES);
glColor3f(1,1,0);
glVertex2f(-1,1);
glColor3f(1,0,0);
glVertex2f(0,1.5);
glColor3f(1,0,1);
glVertex2f(1,1);
glEnd();
glPopMatrix();
//////////////////////////
glPushMatrix();
glColor3f(1,1,0);
glRotatef(b,0,0,1);
glBegin(GL_TRIANGLES);
glColor3f(0,1,1);
glVertex2f(-1,1);
glColor3f(0,0,1);
glVertex2f(0,1.5);
glColor3f(1,1,0);
glVertex2f(1,1);
glEnd();
glPopMatrix();
////////////////////////////
glPushMatrix();
glColor3f(0,0,1);
glRotatef(c,0,1,0);
glBegin(GL_TRIANGLES);
glColor3f(0,1,0);
glVertex2f(-1,1);
glColor3f(1,0,1);
glVertex2f(0,1.5);
glColor3f(1,0,1);
glVertex2f(1,1);
glEnd();
glPopMatrix();
glutSwapBuffers();
glFlush();
}

void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(60.0, w/ h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}

void idle(){
a+=0.5;
b+=0.9;
c+=0.5;
d+=0.8;
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (w, h);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutIdleFunc(idle);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}




ممنون میشم اگه کسی بهم کمک کنه