예제 #1
0
void MyMerryGoRound::drawBar()
{
    glPushMatrix();
    glRotatef(-90, 1, 0, 0);
    gluCylinder(pObj,3.0f, 3.0f, 30.0f, 30, 5);
    glPopMatrix();

    glTranslatef(0, 30, 0);


    for(int i = 1 ; i < 10 ; i ++) {
        drawSeat( ( 360 *  i/total_seats) - rotateangle, i);
    }



    // fill up later
}
예제 #2
0
void PatBike::draw()
{
    setMaterial();
    if (isJousting)
    {
        joust();
    }
    else
    {
        move();
    }
     glPushMatrix();//BIKE

        glTranslated(bikePosX, 0.28, bikePosZ);
        glRotatef(heading, 0, 1, 0);
        
        glScalef(0.5,0.5,0.5);
        tm->BindTextureByIndex(2);   
        drawEngine(0.55, 0.45, 0.50, 0.4, 0.75);
        glDisable(GL_TEXTURE_2D);

        glPushMatrix();// Connect Front2Back
            glColor3f(0.6, 0.6, 0.65);
            glTranslatef(0.55, 0, 0);
            glRotatef(90, 0, 1, 0);
            glRotatef(-70, 1, 0, 0);
            drawCylinder(0.075, 0.075, 1.25, 75, 75);
        glPopMatrix();

        glPushMatrix();// Gas Tank

            glColor3f(0.4, 0.2, 0.2);
            glTranslatef(-0.6, 0.35, 0.0);
            glScalef(0.62,0.42, 0.42);
         //glEnable(GL_TEXTURE_2D); 
         //   glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); 
         //   glBindTexture(GL_TEXTURE_2D, texture[5]); 
            
            tm->BindTextureByIndex(5);   
                glutSolidCube(1.0);
            glDisable(GL_TEXTURE_2D);
        glPopMatrix();
                
        drawSeat();

        glPushMatrix();
            drawTrailerHitch();
        glPopMatrix();
        
        //Draw the lower back frame
        drawBottomBackFrame();

        glPushMatrix();
            glTranslatef(-1.4, 0, 0.0);
            drawTire(11);
        glPopMatrix();				

            //Start front frame
        glPushMatrix();
            glTranslatef(1.7, 0, 0.0);
            glRotatef(15, 0, 0, 1);
            //if (heading < -225.0f)
            //{
            //    glRotatef(-45.0f,0,1,0);
            //}
            //else if (heading < -179.0f)
            //{
            //    glRotatef(heading + 180.0f,0,1,0);
            //}
            //else if (heading < -45.0f)
            //{
            //    glRotatef(-45.0f,0,1,0);
            //}
            //else
            //{
            //    glRotatef(heading,0,1,0);
            //}

            glPushMatrix();	
                drawTire(11);
            glPopMatrix();
            drawFrontFrame();
            glTranslatef(-0.01, 1.2, 0.0);
            glPushMatrix();
                drawHead();					
            glPopMatrix();
        glPopMatrix();	
    

        glPushMatrix();
            glTranslatef(1.0f, 1.6f, 0.0f);
            glRotatef(45, 0.0f, 1.0f, 0.0f);
            if (okToDrawSpear)
                drawSpear(0.4, 0, 5.00, 75, 75);
        glPopMatrix();
    glPopMatrix();
    glDisable(GL_COLOR_MATERIAL);
    
}
예제 #3
0
void drawFrame() 
{ 
   glColor3f(1.0f,0.0f,0.0f); 

   glPushMatrix(); 
      glPushMatrix(); 
         glColor3f(0.0f,1.0f,0.0f); 
          
         glPushMatrix(); 
            glTranslatef(0.0f,0.0f,0.06f); 
            glRotatef(-2*pedalAngle,0.0f,0.0f,1.0f); 
            gear(0.08f,0.3f,0.03f,30,0.03f); 
         glPopMatrix(); 
         glColor3f(1.0f,0.0f,0.0f); 
         glTranslatef(0.0f,0.0f,-0.2f); 
         ZCylinder(0.08f,0.32f); 
      glPopMatrix(); 
      glRotatef(RIGHT_ANGLE,0.0f,0.0f,1.0f); 
      XCylinder(ROD_RADIUS,RIGHT_ROD); 
       
      glRotatef(MIDDLE_ANGLE-RIGHT_ANGLE,0.0f,0.0f,1.0f); 
      XCylinder(ROD_RADIUS,MIDDLE_ROD); 
      glColor3f(1.0f,1.0f,0.0f); 
      glTranslatef(MIDDLE_ROD,0.0f,0.0f); 
      glRotatef(-MIDDLE_ANGLE,0.0f,0.0f,1.0f); 
      glScalef(0.3f,ROD_RADIUS,0.25f); 
      drawSeat(); 
      glColor3f(1.0f,0.0f,0.0f); 
   glPopMatrix(); 
   glPushMatrix(); 
      glRotatef(-180.0f,0.0f,1.0f,0.0f); 
      XCylinder(ROD_RADIUS,BACK_CONNECTOR); 
    
      glPushMatrix(); 
         glTranslatef(0.5f,0.0f,WHEEL_OFFSET); 
         XCylinder(ROD_RADIUS,RADIUS_WHEEL+TUBE_WIDTH); 
      glPopMatrix(); 
      glPushMatrix(); 
         glTranslatef(0.5f,0.0f,-WHEEL_OFFSET); 
         XCylinder(ROD_RADIUS,RADIUS_WHEEL+TUBE_WIDTH); 
      glPopMatrix(); 
   glPopMatrix(); 
    
   glPushMatrix(); 
      glTranslatef(-(BACK_CONNECTOR+RADIUS_WHEEL+TUBE_WIDTH),0.0f,0.0f); 
      glPushMatrix(); 
         glRotatef(-2*pedalAngle,0.0f,0.0f,1.0f); 
         drawTyre(); 
         glColor3f(0.0f,1.0f,0.0f); 
            gear(0.03f,0.15f,0.03f,20,0.03f); 
         glColor3f(1.0f,0.0f,0.0f); 
      glPopMatrix(); 
      glRotatef(LEFT_ANGLE,0.0f,0.0f,1.0f); 
          
      glPushMatrix(); 
         glTranslatef(0.0f,0.0f,-WHEEL_OFFSET); 
         XCylinder(ROD_RADIUS,WHEEL_LEN); 
      glPopMatrix(); 
      glPushMatrix(); 
         glTranslatef(0.0f,0.0f,WHEEL_OFFSET); 
         XCylinder(ROD_RADIUS,WHEEL_LEN); 
      glPopMatrix(); 
      glTranslatef(WHEEL_LEN,0.0f,0.0f); 
      XCylinder(ROD_RADIUS,CRANK_ROD); 
    
      glTranslatef(CRANK_ROD,0.0f,0.0f); 
      glRotatef(-LEFT_ANGLE,0.0f,0.0f,1.0f); 
      XCylinder(ROD_RADIUS,TOP_LEN); 
       
      glTranslatef(TOP_LEN,0.0f,0.0f); 
      glRotatef(-FRONT_INCLINE,0.0f,0.0f,1.0f); 
       
      glPushMatrix(); 
         glTranslatef(-0.1f,0.0f,0.0f); 
         XCylinder(ROD_RADIUS,0.45f); 
      glPopMatrix(); 
       
      glPushMatrix(); 
         glRotatef(-steering,1.0f,0.0f,0.0f); 
         glTranslatef(-0.3f,0.0f,0.0f); 

         glPushMatrix(); 
            glRotatef(FRONT_INCLINE,0.0f,0.0f,1.0f); 

            glPushMatrix(); 
               glTranslatef(0.0f,0.0f,-HANDLE_ROD/2); 
               ZCylinder(ROD_RADIUS,HANDLE_ROD); 
            glPopMatrix(); 

            glPushMatrix(); 
               glColor3f(1.0f,1.0f,0.0f); 
               glTranslatef(0.0f,0.0f,-HANDLE_ROD/2); 
               ZCylinder(0.07f,HANDLE_ROD/4); 
               glTranslatef(0.0f,0.0f,HANDLE_ROD*3/4); 
               ZCylinder(0.07f,HANDLE_ROD/4); 
               glColor3f(1.0f,0.0f,0.0f); 
            glPopMatrix(); 
         glPopMatrix(); 

         glPushMatrix(); 
            XCylinder(ROD_RADIUS,CRANK_ROD); 

            glTranslatef(CRANK_ROD,0.0f,0.0f); 
            glRotatef(CRANK_ANGLE,0.0f,0.0f,1.0f); 

            glPushMatrix(); 
               glTranslatef(0.0f,0.0f,WHEEL_OFFSET); 
               XCylinder(ROD_RADIUS,CRANK_RODS); 
            glPopMatrix(); 
            glPushMatrix(); 
               glTranslatef(0.0f,0.0f,-WHEEL_OFFSET); 
               XCylinder(ROD_RADIUS,CRANK_RODS); 
            glPopMatrix(); 
            glTranslatef(CRANK_RODS,0.0f,0.0f); 
            glRotatef(-2*pedalAngle,0.0f,0.0f,1.0f); 
            drawTyre(); 
         glPopMatrix(); 
      glPopMatrix();
   glPopMatrix(); 
}