Also Like

📁 last Posts

رسم المج ( كودي )

#include <GL/glut.h>
#include <math.h>
float PI = 3.141592;
float xroot = 0, yroot = 0;
void SetUpRC() {
    glClearColor(1, 1, 1, 1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, 1, 1, 5000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0, 0, 500, 0, 0, 0, 0, 1, 0);

}

void base_1(float height,float radius,float r, float g, float b) {
    glColor3f(r, g, b);
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <=2*PI+1; i+=2*PI/100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, height, z);
        glVertex3f(x, -height, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, height+1, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, height, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -height, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, -height, z);
    }
    glEnd();

}

void ww() {
    glColor3f(.2, .3, 0);
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0,41, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 26.4 * cos(i);
        float z = 26.4 * sin(i);
        glVertex3f(x, 41, z);
    }
    glEnd();
}


void RenderScene() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);
    glPushMatrix();
    glRotated(xroot, 1, 0, 0);
    glRotated(yroot, 0, 1, 0);

    //------------------Start
    glPushMatrix();
    glTranslated(0, -30, 0);
    base_1(13,30.4,1,0,1);
    glPopMatrix();

    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    base_1(40,30,0,1,0);
    glPopMatrix();

    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(50, 0, 0);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END

    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(35, 25, 0);
    glRotated(90, 0, 0, 1);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(35, -25, 0);
    glRotated(90, 0, 0, 1);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END
    ww();


    glPopMatrix();
    glutSwapBuffers();
}

void SpecialKey(int key,int x,int y) {

    if (key==GLUT_KEY_UP) {
        xroot -= 5;
    }
    if (key == GLUT_KEY_DOWN) {
        xroot += 5;
    }
    if (key == GLUT_KEY_LEFT) {
        yroot -= 5;
    }
    if (key == GLUT_KEY_RIGHT) {
        yroot += 5;
    }
    glutPostRedisplay();
}


int main(int argc , char**argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(600, 600);
    glutCreateWindow("kero");
    SetUpRC();
    glutDisplayFunc(RenderScene);
    glutSpecialFunc(SpecialKey);
    glutMainLoop();
    return 0;
}
Comments