Esempio n. 1
0
int main() {
	Surface* surface = new Surface(70, 60, ' ');

	drawBody(surface);
	drawCockpit(surface);

	drawWing(surface, true);
	drawWing(surface, false);

	drawSeats(surface);

	drawTail(surface);

	std::cout << surface->str() << std::endl;
}
Esempio n. 2
0
void drawHelicopter(void) {
    
    glRotatef(180, 0.0f, 1.0f, 0.0f);
    
    if (lightingEnabled) {
    
    if (headlight) {
        
        setHeadlight();
        
    }
    
    else {
        glDisable(GL_LIGHT1);
    }
        
    }
    
    
    glClearColor(0.49f, 0.75f, 0.93f, 1.0f);
    
    drawBody();
    
    //Tail
    glPushMatrix();
    
    glTranslatef(0.0f, 1.5f, -16.0f);
    glScalef(0.25f, 1.0f, 2.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 1.5, 1.5, 6, 100, 100);
    glEnd();
    glPopMatrix();
    
    //Back Body
    glPushMatrix();
    glScalef(1.33f, 1.0f, 1.0f);
    glTranslatef(0.0f, 0.0f, -6.0f);
    glutSolidSphere(3, 100, 100);
    glPopMatrix();
    
    drawCockpit();
    
    glColor3f(0.50f, 0.50f, 0.50f);
    //Front Left Leg
    glPushMatrix();
    glTranslatef(2.5f, -3.0f, 2.5f);
    glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 0.25, 0.25, 1, 100, 100);
    glEnd();
    glPopMatrix();
    
    //Back Left Leg
    glPushMatrix();
    glTranslatef(2.5f, -3.0f, -2.5f);
    glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 0.25, 0.25, 1, 100, 100);
    glEnd();
    
    glPopMatrix();
    
    //Front Right Leg
    glPushMatrix();
    glTranslatef(-2.5f, -3.0f, 2.5f);
    glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 0.25, 0.25, 1, 100, 100);
    glEnd();
    glPopMatrix();
    
    //Back Right Leg
    glPushMatrix();
    glTranslatef(-2.5f, -3.0f, -2.5f);
    glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 0.25, 0.25, 1, 100, 100);
    glEnd();
    glPopMatrix();
    
    glColor3f(0.25f, 0.25f, 0.25f);
    //Landing Ski Left
    glPushMatrix();
    glTranslatef(2.5f, -4.25f, 0.0f);
    glScalef(1.0f, 0.5f, 10.0f);
    glutSolidCube(1.0f);
    glPopMatrix();
    
    //Landing Ski Right
    glPushMatrix();
    glTranslatef(-2.5f, -4.25f, 0.0f);
    glScalef(1.0f, 0.5f, 10.0f);
    glutSolidCube(1.0f);
    glPopMatrix();
    
    glColor3f(0.33f, 0.42f, 0.18f);
    //Tail Fin
    glPushMatrix();
    glTranslatef(0.0f, 3.0f, -15.0f);
    glScalef(0.5f, 6.0f, 3.0f);
    glutSolidCube(1.0f);
    glPopMatrix();
    
    /*Rotors drawn in separate methods in case we want to rotate them at some point.
     It would be easier to modify the code that way. */
    
    // Draw top rotor
    glColor3f(0.50f, 0.50f, 0.50f);
    glPushMatrix();
    glTranslatef(0.0, 4.0, 0.0);
    glRotatef(bladeAngle, 0.0, 1.0, 0.0);
    drawBladeCap();
    glTranslatef(0.0, 1.0, 0.0);
    drawBlade();
    glRotatef(120.0, 0.0, 1.0, 0.0);
    drawBlade();
    glRotatef(120.0, 0.0, 1.0, 0.0);
    drawBlade();
    glPopMatrix();
    
    // Draw tail rotor
    glPushMatrix();
    glTranslatef(0.5, 4.5, -15.0);
    glScalef(0.3, 0.3, 0.3);
    glRotatef(-90.0, 0.0, 0.0, 1.0);
    glRotatef(bladeAngle, 0.0, 1.0, 0.0);
    drawBladeCap();
    glTranslatef(0.0, 0.5, 0.0);
    drawBlade();
    glRotatef(120.0, 0.0, 1.0, 0.0);
    drawBlade();
    glRotatef(120.0, 0.0, 1.0, 0.0);
    drawBlade();
    glPopMatrix();
    
    glColor3f(0.24f, 0.32f, 0.16f);
    //Left Wing
    glPushMatrix();
    glTranslatef(6.5f, 0.5f, -2.0f);
    glRotatef(-30.0f, 0.0f, 0.0f, 1.0f);
    glScalef(1.0f, 0.075f, 0.60f);
    glutSolidCube(8.0f);
    glPopMatrix();
    
    //Right Wing
    glPushMatrix();
    glTranslatef(-6.5f, 0.5f, -2.0f);
    glRotatef(30.0f, 0.0f, 0.0f, 1.0f);
    glScalef(1.0f, 0.075f, 0.60f);
    glutSolidCube(8.0f);
    glPopMatrix();
    
    //Tail Wings
    glPushMatrix();
    glTranslatef(0.0f, 1.5f, -11.0f);
    glScalef(1.0f, 0.10f, 0.5f);
    glutSolidCube(4.0f);
    glPopMatrix();
    
    glColor3f(0.50f, 0.50f, 0.50f);
    //Missile Launcher Left
    glPushMatrix();
    glTranslatef(6.0f, -0.25f, -5.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 1, 1, 6, 100, 100);
    glEnd();
    glPopMatrix();

    //Missile Launcher Right
    glPushMatrix();
    glTranslatef(-6.0f, -0.25f, -5.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 1, 1, 6, 100, 100);
    glEnd();
    glPopMatrix();
    
    glColor3f(0.25f, 0.25f, 0.25f);
    //Left Side Missile Head
    glPushMatrix();
    glTranslatef(6.0f, -0.25f, 1.0f);
    glutSolidSphere(1.0, 50, 50);
    glPopMatrix();
    
    //Right Side Missile Head
    glPushMatrix();
    glTranslatef(-6.0f, -0.25f, 1.0f);
    glutSolidSphere(1.0, 50, 50);
    glPopMatrix();
    
    //Machine gun
    glPushMatrix();
    glTranslatef(0.0f, -2.5f, 9.0f);
    glBegin(GL_POLYGON);
    gluCylinder(obj, 0.25, 0.25, 2, 100, 100);
    glEnd();
    glPopMatrix();
    
    
}