Solved programming problem

Draw 4 Part Circle ( Assignment - 01 )

Source code

//gloabal variable 

double mainangle=0;

double incx1=0, incy1=0;

double incx2=0, incy2=0;

double incx3=0, incy3=0;

double incx4=0, incy4=0;

//key press

void keyboardListener(unsigned char key, int x,int y)

{

    switch(key)

    {

    case '1':

        mainangle += 1;

        break;

    case '2':

        mainangle -= 1;

        break;

    case '3':

        // code animating

        //1st cord

        incx1 += 0.5;

        incy1 += 0.5;

        //2nd cord

        incx2 -= 0.5;

        incy2 += 0.5;

        //3rd cord

        incx3 -= 0.5;

        incy3 -= 0.5;

        //3rd cord

        incx4 += 0.5;

        incy4 -= 0.5;

        //printf("1");

        break;

    case '4':

        //1st cord

        incx1 -= 0.5;

        incy1 -= 0.5;

        //2nd cord

        incx2 += 0.5;

        incy2 -= 0.5;

        //3rd cord

        incx3 += 0.5;

        incy3 += 0.5;

        //3rd cord

        incx4 -= 0.5;

        incy4 += 0.5;

        break;

    default:

        break;

    }

}

//draw 1st coordinate

void circle_1stCor(float radius_x, float radius_y)

{

    int i = 0;

    float angle = 0.0;

    //glPushMatrix();

    glRotatef(mainangle,0,0,1);

    glTranslatef(incx1,incy1,0);

    //glPopMatrix();

    glBegin(GL_POLYGON);

    {

        for(i = 0; i <= 25; i++)

        {

            angle = 2 * 3.1416 * i / 100;

            //printf("%d ",angle);

            glColor3f(1.0, 0.0, 0.0);

            glVertex3f (cos(angle) * radius_x, sin(angle) * radius_y, 0);

        }

        glVertex3f (0,0, 0);

    }

    glEnd();

    //glPushMatrix();

    //glPopMatrix();

}

//draw 2nd coordinate

void circle_2ndCor(float radius_x, float radius_y)

{

    int i = 0;

    float angle = 0.0;

    glRotatef(mainangle,0,0,1);

    glTranslatef(incx2,incy2,0);

    glBegin(GL_POLYGON);

    {

        for(i = 25; i <= 50; i++)

        {

            angle = 2 * 3.1416 * i / 100;

            //printf("%d ",angle);

            glColor3f(0.0, 1.0, 0.0);

            glVertex3f (cos(angle) * radius_x, sin(angle) * radius_y, 0);

        }

        glVertex3f (0,0, 0);

    }

    glEnd();

}

//draw 3rd coordinate

void circle_3rdCor(float radius_x, float radius_y)

{

    int i = 0;

    float angle = 0.0;

    glRotatef(mainangle,0,0,1);

    glTranslatef(incx3,incy3,0);

    glBegin(GL_POLYGON);

    {

        for(i = 50; i <= 75; i++)

        {

            angle = 2 * 3.1416 * i / 100;

            //printf("%d ",angle);

            glColor3f(1.0, 0.0, 0.0);

            glVertex3f (cos(angle) * radius_x, sin(angle) * radius_y, 0);

        }

        glVertex3f (0,0, 0);

    }

    glEnd();

}

//draw 4th coordinate

void circle_4thCor(float radius_x, float radius_y)

{

    int i = 0;

    float angle = 0.0;

    glRotatef(mainangle,0,0,1);

    glTranslatef(incx4,incy4,0);

    glBegin(GL_POLYGON);

    {

        for(i = 75; i <= 100; i++)

        {

            angle = 2 * 3.1416 * i / 100;

            //printf("%d ",angle);

            glColor3f(0.0, 1.0, 0.0);

            glVertex3f (cos(angle) * radius_x, sin(angle) * radius_y, 0);

        }

        glVertex3f (0,0, 0);

    }

    glEnd();

}

//call those function from display

    glPushMatrix();

    circle_1stCor(30,30);

    glPopMatrix();

    glPushMatrix();

    circle_2ndCor(30,30);

    glPopMatrix();

    glPushMatrix();

    circle_3rdCor(30,30);

    glPopMatrix();

    glPushMatrix();

    circle_4thCor(30,30);

    glPopMatrix();
Join the discussion

Add your comment