нижний прямоугольник - пояс, а второй - ящики. Я хочу, чтобы пояс двигался при нажатии клавиши. Я хочу, чтобы объекты падали из ящиков, представленных выше, при нажатии мыши. Я хочу, чтобы это было в 3D, чтобы мы могли видеть вся модель во всех направлениях, я хочу, чтобы объекты прямоугольник, куб, треугольник падали из ящиков один за другим '' '
#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
void Belt()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.60,0.60,0.60);
glLineWidth(30);
glBegin(GL_POLYGON); //DISPLAYS A FILL POLYOGON
glVertex2i(50,90); //SELECTS A COORDINATE POSITION
glVertex2i(480,90);
glVertex2i(480,100);
glVertex2i(50,100);
glEnd();
glFlush();
}
void Box()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.60,0.60,0.60);
glLineWidth(30);
Belt(); //THE FUNCTION OF BELT IS CALLED
glBegin(GL_POLYGON); //DISPLAYS A FILL POLYOGON
glVertex2i(100,300); //SELECTS A COORDINATE POSITION
glVertex2i(180,300);
glVertex2i(180,400);
glVertex2i(100,400);
glEnd();
glFlush();
}
void Box1()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.60,0.60,0.60);
glLineWidth(30);
Box(); //THE FUNCTION OF BOX IS CALLED
glBegin(GL_POLYGON); //DISPLAYS A FILL POLYOGON
glVertex2i(230,300); //SELECTS A COORDINATE POSITION
glVertex2i(300,300);
glVertex2i(300,400);
glVertex2i(230,400);
glEnd();
glFlush();
}
void Box2()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.60,0.60,0.60);
glLineWidth(30);
Box1(); //THE FUNCTION OF BOX1 IS CALLED
glBegin(GL_POLYGON); //DISPLAYS A FILL POLYOGON
glVertex2i(350,300); //SELECTS A COORDINATE POSITION
glVertex2i(430,300);
glVertex2i(430,400);
glVertex2i(350,400);
glEnd();
glFlush();
}
void MYINIT()
{
glClearColor(1.0,1.0,1.0,0.0); //CLEARING THE COLOR
glMatrixMode(GL_PROJECTION); //INITILIZATION OF THE MODE
glLoadIdentity(); //CALLING THE FUNCTION LOADIDENTITY
gluOrtho2D(0.0,500.0,0.0,500.0);
glMatrixMode(GL_MODELVIEW);
}
void Display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
Box2(); //THE FUNCTION OF BOX2 IS CALLED
glFlush();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv); //GLUT INITIALIZATION
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(800,800); //INITILIZATION OF THE WINDOWS SIZE
glutInitWindowPosition(0,0); //INITILIZATION OF THE WINDOWS POSITION
glutCreateWindow("PRODUCTION LINE"); //CREATEING OF THE NEW WINDOW
MYINIT(); //CALIING THE MYINIT FUNCTION
glutDisplayFunc(Display); //CALLING THE DISPLAY FUNCTION
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
' ''