├── README.md ├── backupfinal.c └── images ├── gif_img.gif └── lastflight.jpg /README.md: -------------------------------------------------------------------------------- 1 | # Computer-Graphics-MiniProject 2 | 3 | 4 | 5 | 6 | VTU 6th sem CSE Computer graphics mini project using OpenGL with CodeBlocks. 7 | The project is a graphic version of the 9/11 aeroplane crash on the World Trade Center USA. 8 | It consists of 3 frames- 1)Plane Take-off 2)Plane flyby and 3)Plane crash on the twin tower. 9 | 10 | 11 | 12 | 13 | ## How To Run Project: 14 | 1) Follow this detailed instructions on installing OpenGL on Windows/Linux: https://www.youtube.com/watch?v=kbdPTNzyeIM 15 | 2) Clone the repository 16 | 3) Run the .c file on CodeBlocks on Windows or follow the steps from the video to run the program on Linux environments. 17 | 4) Do star the repo if you found it helpful :) 18 | 19 | # NOTE: 20 | ### This Project is for education only and not for monetary purpose. 21 | -------------------------------------------------------------------------------- /backupfinal.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | GLfloat a = 0, b = 0, c = 0, d = 0, e = 0; 4 | void building(); 5 | void building1(); 6 | void outline(); 7 | void blast(); 8 | void road(); 9 | void display2(); 10 | void display3(); 11 | void build_outline(); 12 | void update(int value) 13 | { 14 | a += 20.0; //Plane position takeoff on x axis 15 | b -= 10.0; //Road Strip backward movement 16 | c += 15; //take off at certain angle on y axis 17 | if (b <= -78.0) // moving of run way 18 | b = 0.0; 19 | glutPostRedisplay(); 20 | glutTimerFunc(150, update, 0); //delay 21 | } 22 | void display(void) 23 | { 24 | glClear(GL_COLOR_BUFFER_BIT); 25 | road(); 26 | glPushMatrix(); 27 | glTranslated(a, c, 0.0); 28 | glColor3f(1.0, 1.0, 1.0); 29 | glBegin(GL_POLYGON); //rectangular body 30 | glVertex2f(0.0, 30.0); 31 | glVertex2f(0.0, 55.0); 32 | glVertex2f(135.0, 55.0); 33 | glVertex2f(135.0, 30.0); 34 | glEnd(); 35 | glPopMatrix(); 36 | glPushMatrix(); 37 | glTranslated(a, c, 0.0); 38 | glColor3f(1.0, 1.0, 1.0); 39 | glBegin(GL_POLYGON); //upper triangle construction plane 40 | glVertex2f(135.0, 55.0); 41 | glVertex2f(150.0, 50.0); 42 | glVertex2f(155.0, 45.0); 43 | glVertex2f(160.0, 40.0); 44 | glVertex2f(135.0, 40.0); 45 | glEnd(); 46 | glPopMatrix(); 47 | glPushMatrix(); 48 | glTranslated(a, c, 0.0); 49 | glColor3f(0.0, 0.0, 0.0); 50 | glBegin(GL_LINE_LOOP); //outline of upper triangle plane 51 | glVertex2f(135.0, 55.0); 52 | glVertex2f(150.0, 50.0); 53 | glVertex2f(155.0, 45.0); 54 | glVertex2f(160.0, 40.0); 55 | glVertex2f(135.0, 40.0); 56 | glEnd(); 57 | glPopMatrix(); 58 | glPushMatrix(); 59 | glTranslated(a, c, 0.0); 60 | glColor3f(1.0, 0.0, 0.0); 61 | glBegin(GL_POLYGON); //lower triangle 62 | glVertex2f(135.0, 40.0); 63 | glVertex2f(160.0, 40.0); 64 | glVertex2f(160.0, 37.0); 65 | glVertex2f(145.0, 30.0); 66 | glVertex2f(135.0, 30.0); 67 | glEnd(); 68 | glPopMatrix(); 69 | glPushMatrix(); 70 | glTranslated(a, c, 0.0); 71 | glColor3f(1.0, 0.0, 0.0); 72 | glBegin(GL_POLYGON); //back wing 73 | glVertex2f(0.0, 55.0); 74 | glVertex2f(0.0, 80.0); 75 | glVertex2f(10.0, 80.0); 76 | glVertex2f(40.0, 55.0); 77 | glEnd(); 78 | glPopMatrix(); 79 | glPushMatrix(); 80 | glTranslated(a, c, 0.0); 81 | glColor3f(1.0, 0.0, 0.0); 82 | glBegin(GL_POLYGON); //left side wing 83 | glVertex2f(65.0, 55.0); 84 | glVertex2f(50.0, 70.0); 85 | glVertex2f(75.0, 70.0); 86 | glVertex2f(90.0, 55.0); 87 | glEnd(); 88 | glPopMatrix(); 89 | glPushMatrix(); 90 | glTranslated(a, c, 0.0); 91 | glColor3f(1.0, 0.0, 0.0); 92 | glBegin(GL_POLYGON); //rightside wing 93 | glVertex2f(70.0, 40.0); 94 | glVertex2f(100.0, 40.0); 95 | glVertex2f(80.0, 15.0); 96 | glVertex2f(50.0, 15.0); 97 | glEnd(); 98 | glPopMatrix(); 99 | if (c > 360) //timer to jump to next display 100 | { 101 | display2(); 102 | d += 20; //plane takeoff on x in 2nd display 103 | } 104 | if (a > 500.0) //window position during take off 105 | { 106 | a = 0.0; 107 | b = 0.0; 108 | } 109 | if (c > 750) //timer to jump to 3rd display 110 | { 111 | display3(); 112 | e += 20; //plane takeoff on x in 3rd display 113 | if (e > 250) //timer to call blast function 114 | { 115 | blast(); 116 | e = 250; 117 | } 118 | } 119 | glFlush(); 120 | } 121 | void building() 122 | { 123 | glColor3f(0.60, 0.40, 0.70); 124 | glBegin(GL_POLYGON); 125 | glVertex2f(350.0, 80.0); 126 | glVertex2f(350.0, 480.0); 127 | glVertex2f(400.0, 400.0); 128 | glVertex2f(400.0, 0.0); 129 | glEnd(); 130 | glColor3f(0.75, 0.75, 0.75); 131 | glBegin(GL_POLYGON); 132 | glVertex2f(400.0, 0.0); 133 | glVertex2f(400.0, 400.0); 134 | glVertex2f(450.0, 400.0); 135 | glVertex2f(450.0, 0.0); 136 | glEnd(); 137 | glColor3f(1.0, 1.0, 1.0); 138 | glBegin(GL_POLYGON); 139 | glVertex2f(400.0, 400.0); 140 | glVertex2f(350.0, 480.0); 141 | glVertex2f(400.0, 480.0); 142 | glVertex2f(450.0, 400.0); 143 | glEnd(); 144 | glColor3f(0.60, 0.40, 0.70); 145 | glBegin(GL_POLYGON); //upper triangle of building 146 | glVertex2f(400.0, 400.0); 147 | glVertex2f(350.0, 480.0); 148 | glVertex2f(400.0, 480.0); 149 | glEnd(); 150 | glColor3f(0.0, 0.0, 0.0); 151 | glBegin(GL_LINES); //seperation line of floors 152 | glVertex2f(350.0, 180); 153 | glVertex2f(400.0, 100); 154 | glEnd(); 155 | glColor3f(0.0, 0.0, 0.0); 156 | glBegin(GL_LINES); 157 | glVertex2f(350.0, 280); 158 | glVertex2f(400.0, 200); 159 | glEnd(); 160 | glColor3f(0.0, 0.0, 0.0); 161 | glBegin(GL_LINES); 162 | glVertex2f(350.0, 380); 163 | glVertex2f(400.0, 300); 164 | glEnd(); 165 | glColor3f(0.0, 0.0, 0.0); 166 | glBegin(GL_LINES); 167 | glVertex2f(450.0, 100); 168 | glVertex2f(400.0, 100); 169 | glEnd(); 170 | glColor3f(0.0, 0.0, 0.0); 171 | glBegin(GL_LINES); 172 | glVertex2f(450.0, 200); 173 | glVertex2f(400.0, 200); 174 | glEnd(); 175 | glColor3f(0.0, 0.0, 0.0); 176 | glBegin(GL_LINES); 177 | glVertex2f(450.0, 300); 178 | glVertex2f(400.0, 300); 179 | glColor3f(0.0, 0.0, 0.0); 180 | glBegin(GL_LINES); 181 | glVertex2f(350.0, 180); 182 | glEnd(); 183 | 184 | //2nd 185 | 186 | glColor3f(0.60, 0.40, 0.70); 187 | glBegin(GL_POLYGON); 188 | glVertex2f(250.0, 80.0); 189 | glVertex2f(250.0, 380.0); 190 | glVertex2f(300.0, 300.0); 191 | glVertex2f(300.0, 0.0); 192 | glEnd(); 193 | glColor3f(0.75, 0.75, 0.75); 194 | glBegin(GL_POLYGON); 195 | glVertex2f(300.0, 0.0); 196 | glVertex2f(300.0, 300.0); 197 | glVertex2f(350.0, 300.0); 198 | glVertex2f(350.0, 0.0); 199 | glEnd(); 200 | glColor3f(1.0, 1.0, 1.0); 201 | glBegin(GL_POLYGON); 202 | glVertex2f(300.0, 300.0); 203 | glVertex2f(250.0, 380.0); 204 | glVertex2f(300.0, 380.0); 205 | glVertex2f(350.0, 300.0); 206 | glEnd(); 207 | glColor3f(0.60, 0.40, 0.70); 208 | glBegin(GL_POLYGON); //upper triangle of building 209 | glVertex2f(300.0, 300.0); 210 | glVertex2f(250.0, 380.0); 211 | glVertex2f(300.0, 380.0); 212 | glEnd(); 213 | glColor3f(0.0, 0.0, 0.0); 214 | glBegin(GL_LINES); //seperation line of floors 215 | glVertex2f(250.0, 80); 216 | glVertex2f(300.0, 0.0); 217 | glEnd(); 218 | glColor3f(0.0, 0.0, 0.0); 219 | glBegin(GL_LINES); 220 | glVertex2f(250.0, 180); 221 | glVertex2f(300.0, 100); 222 | glEnd(); 223 | glColor3f(0.0, 0.0, 0.0); 224 | glBegin(GL_LINES); 225 | glVertex2f(250.0, 280); 226 | glVertex2f(300.0, 200); 227 | glEnd(); 228 | glColor3f(0.0, 0.0, 0.0); 229 | glBegin(GL_LINES); 230 | glVertex2f(350.0, 0.0); 231 | glVertex2f(300.0, 0.0); 232 | glEnd(); 233 | glColor3f(0.0, 0.0, 0.0); 234 | glBegin(GL_LINES); 235 | glVertex2f(250.0, 100); 236 | glVertex2f(300.0, 100); 237 | glEnd(); 238 | glColor3f(0.0, 0.0, 0.0); 239 | glBegin(GL_LINES); 240 | glVertex2f(350.0, 200); 241 | glVertex2f(300.0, 200); 242 | glColor3f(0.0, 0.0, 0.0); 243 | glBegin(GL_LINES); 244 | glVertex2f(250.0, 80); 245 | glEnd(); 246 | 247 | build_outline(); 248 | } 249 | void build_outline() //building out lines 250 | { 251 | glColor3f(0.0, 0.0, 0.0); 252 | glBegin(GL_LINE_LOOP); 253 | glVertex2f(350.0, 80.0); 254 | glVertex2f(350.0, 480.0); 255 | glVertex2f(400.0, 400.0); 256 | glVertex2f(400.0, 0.0); 257 | glEnd(); 258 | glColor3f(0.0, 0.0, 0.0); 259 | glBegin(GL_LINE_LOOP); 260 | glVertex2f(400.0, 0.0); 261 | glVertex2f(400.0, 400.0); 262 | glVertex2f(450.0, 400.0); 263 | glVertex2f(450.0, 0.0); 264 | glEnd(); 265 | glColor3f(0.0, 0.0, 0.0); 266 | glBegin(GL_LINE_LOOP); 267 | glVertex2f(400.0, 400.0); 268 | glVertex2f(350.0, 480.0); 269 | glVertex2f(400.0, 480.0); 270 | glVertex2f(450.0, 400.0); 271 | glEnd(); 272 | 273 | glColor3f(0.0, 0.0, 0.0); 274 | glBegin(GL_LINE_LOOP); 275 | glVertex2f(250.0, 80.0); 276 | glVertex2f(250.0, 380.0); 277 | glVertex2f(300.0, 300.0); 278 | glVertex2f(300.0, 0.0); 279 | glEnd(); 280 | glColor3f(0.0, 0.0, 0.0); 281 | glBegin(GL_LINE_LOOP); 282 | glVertex2f(300.0, 0.0); 283 | glVertex2f(300.0, 300.0); 284 | glVertex2f(350.0, 300.0); 285 | glVertex2f(350.0, 0.0); 286 | glEnd(); 287 | glColor3f(0.0, 0.0, 0.0); 288 | glBegin(GL_LINE_LOOP); 289 | glVertex2f(300.0, 300.0); 290 | glVertex2f(250.0, 380.0); 291 | glVertex2f(300.0, 380.0); 292 | glVertex2f(350.0, 300.0); 293 | glEnd(); 294 | } 295 | void blast(void) //blast polygon construction 296 | { 297 | glPushMatrix(); 298 | glTranslated(-10.0, -60.0, 0.0); 299 | glColor3f(1.0, 0.0, 0.0); 300 | glBegin(GL_POLYGON); 301 | glVertex2f(404.4, 320.0); 302 | glVertex2f(384.0, 285.0); 303 | glVertex2f(368.0, 344.5); 304 | glVertex2f(344.0, 355.0); 305 | glVertex2f(347.2, 414.5); 306 | glVertex2f(332.8, 442.5); 307 | glVertex2f(347.2, 477.5); 308 | glVertex2f(352.0, 530.0); 309 | glVertex2f(379.2, 519.5); 310 | glVertex2f(396.8, 565.0); 311 | glVertex2f(416.0, 530.0); 312 | glVertex2f(440.0, 547.5); 313 | glVertex2f(452.8, 512.5); 314 | glVertex2f(472.0, 512.5); 315 | glVertex2f(475.2, 470.5); 316 | glVertex2f(488.0, 442.5); 317 | glVertex2f(488.0, 404.0); 318 | glVertex2f(470.0, 372.5); 319 | glVertex2f(475.2, 337.5); 320 | glVertex2f(464.0, 306.0); 321 | glVertex2f(444.8, 320.0); 322 | glVertex2f(425.6, 285.0); 323 | glVertex2f(404.8, 320.0); 324 | glEnd(); 325 | glPopMatrix(); 326 | } 327 | void road() 328 | { 329 | glColor3f(0.0, 0.0, 0.0); 330 | glBegin(GL_POLYGON); //black road 331 | glVertex2f(0.0, 0.0); 332 | glVertex2f(0.0, 100.0); 333 | glVertex2f(500.0, 100.0); 334 | glVertex2f(500.0, 0.0); 335 | glEnd(); 336 | glPopMatrix(); 337 | glPushMatrix(); 338 | glTranslated(b, 0.0, 0.0); 339 | glColor3f(1.0, 1.0, 1.0); 340 | glBegin(GL_POLYGON); //white strips on roadglVertex2f(0.0,40.0); 341 | glVertex2f(8.0, 60.0); 342 | glVertex2f(58.0, 60.0); 343 | glVertex2f(50.0, 40.0); 344 | glEnd(); 345 | glPopMatrix(); 346 | glPushMatrix(); 347 | glTranslated(b, 0.0, 0.0); 348 | glColor3f(1.0, 1.0, 1.0); 349 | glBegin(GL_POLYGON); 350 | glVertex2f(100.0, 40.0); 351 | glVertex2f(108.0, 60.0); 352 | glVertex2f(158.0, 60.0); 353 | glVertex2f(150.0, 40.0); 354 | glEnd(); 355 | glPopMatrix(); 356 | glPushMatrix(); 357 | glTranslated(b, 0.0, 0.0); 358 | glColor3f(1.0, 1.0, 1.0); 359 | glBegin(GL_POLYGON); 360 | glVertex2f(200.0, 40.0); 361 | glVertex2f(208.0, 60.0); 362 | glVertex2f(258.0, 60.0); 363 | glVertex2f(250.0, 40.0); 364 | glEnd(); 365 | glPopMatrix(); 366 | glPushMatrix(); 367 | glTranslated(b, 0.0, 0.0); 368 | glColor3f(1.0, 1.0, 1.0); 369 | glBegin(GL_POLYGON); 370 | glVertex2f(300.0, 40.0); 371 | glVertex2f(308.0, 60.0); 372 | glVertex2f(358.0, 60.0); 373 | glVertex2f(350.0, 40.0); 374 | glEnd(); 375 | glPopMatrix(); 376 | glPushMatrix(); 377 | glTranslated(b, 0.0, 0.0); 378 | glColor3f(1.0, 1.0, 1.0); 379 | glBegin(GL_POLYGON); 380 | glVertex2f(400.0, 40.0); 381 | glVertex2f(408.0, 60.0); 382 | glVertex2f(458.0, 60.0); 383 | glVertex2f(450.0, 40.0); 384 | glEnd(); 385 | glPopMatrix(); 386 | } 387 | void display2() 388 | { 389 | glClear(GL_COLOR_BUFFER_BIT); 390 | glPushMatrix(); 391 | glTranslated(d, 300.0, 0.0); 392 | glColor3f(1.0, 1.0, 1.0); 393 | glBegin(GL_POLYGON); 394 | glVertex2f(0.0, 30.0); //rectangulr body 395 | glVertex2f(0.0, 55.0); 396 | glVertex2f(135.0, 55.0); 397 | glVertex2f(135.0, 30.0); 398 | glEnd(); 399 | glPopMatrix(); 400 | glPushMatrix(); 401 | glTranslated(d, 300.0, 0.0); 402 | glColor3f(1.0, 1.0, 1.0); 403 | glBegin(GL_POLYGON); 404 | glVertex2f(135.0, 55.0); //upper triangle construction plane 405 | glVertex2f(150.0, 50.0); 406 | glVertex2f(155.0, 45.0); 407 | glVertex2f(160.0, 40.0); 408 | glVertex2f(135.0, 40.0); 409 | glEnd(); 410 | glPopMatrix(); 411 | glPushMatrix(); 412 | glTranslated(d, 300.0, 0.0); 413 | glColor3f(0.0, 0.0, 0.0); 414 | glBegin(GL_LINE_LOOP); 415 | glVertex2f(135.0, 55.0); //upper triangle construction plane 416 | glVertex2f(150.0, 50.0); 417 | glVertex2f(155.0, 45.0); 418 | glVertex2f(160.0, 40.0); 419 | glVertex2f(135.0, 40.0); 420 | glEnd(); 421 | glPopMatrix(); 422 | glPushMatrix(); 423 | glTranslated(d, 300.0, 0.0); 424 | glColor3f(1.0, 0.0, 0.0); 425 | glBegin(GL_POLYGON); //lower triangle 426 | glVertex2f(135.0, 40.0); 427 | glVertex2f(160.0, 40.0); 428 | glVertex2f(160.0, 37.0); 429 | glVertex2f(145.0, 30.0); 430 | glVertex2f(135.0, 30.0); 431 | glEnd(); 432 | glPopMatrix(); 433 | glPushMatrix(); 434 | glTranslated(d, 300.0, 0.0); 435 | glColor3f(1.0, 0.0, 0.0); 436 | glBegin(GL_POLYGON); //back wing 437 | glVertex2f(0.0, 55.0); 438 | glVertex2f(0.0, 80.0); 439 | glVertex2f(10.0, 80.0); 440 | glVertex2f(40.0, 55.0); 441 | //glVertex2f(165.0,40.0); 442 | glEnd(); 443 | glPopMatrix(); 444 | glPushMatrix(); 445 | glTranslated(d, 300.0, 0.0); 446 | glColor3f(1.0, 0.0, 0.0); 447 | glBegin(GL_POLYGON); //left side wing 448 | glVertex2f(65.0, 55.0); 449 | glVertex2f(50.0, 70.0); 450 | glVertex2f(75.0, 70.0); 451 | glVertex2f(90.0, 55.0); 452 | glEnd(); 453 | glPopMatrix(); 454 | glPushMatrix(); 455 | glTranslated(d, 300.0, 0.0); 456 | glColor3f(1.0, 0.0, 0.0); 457 | glBegin(GL_POLYGON); 458 | glVertex2f(70.0, 40.0); 459 | glVertex2f(100.0, 40.0); 460 | glVertex2f(80.0, 15.0); 461 | glVertex2f(50.0, 15.0); 462 | glEnd(); 463 | glPopMatrix(); 464 | } 465 | 466 | void display3() 467 | { 468 | glClear(GL_COLOR_BUFFER_BIT); 469 | building(); 470 | building(); 471 | glPushMatrix(); 472 | glTranslated(e, 300.0, 0.0); 473 | glColor3f(1.0, 1.0, 1.0); 474 | glBegin(GL_POLYGON); 475 | glVertex2f(0.0, 30.0); //rectangular body 476 | glVertex2f(0.0, 55.0); 477 | glVertex2f(135.0, 55.0); 478 | glVertex2f(135.0, 30.0); 479 | glEnd(); 480 | glPopMatrix(); 481 | glPushMatrix(); 482 | glTranslated(e, 300.0, 0.0); 483 | glColor3f(1.0, 1.0, 1.0); 484 | glBegin(GL_POLYGON); 485 | glVertex2f(135.0, 55.0); 486 | glVertex2f(150.0, 50.0); 487 | glVertex2f(155.0, 45.0); 488 | glVertex2f(160.0, 40.0); 489 | glVertex2f(135.0, 40.0); 490 | glEnd(); 491 | glPopMatrix(); 492 | glPushMatrix(); 493 | glTranslated(e, 300.0, 0.0); 494 | glColor3f(0.0, 0.0, 0.0); 495 | glBegin(GL_LINE_LOOP); 496 | glVertex2f(135.0, 55.0); 497 | glVertex2f(150.0, 50.0); 498 | glVertex2f(155.0, 45.0); 499 | glVertex2f(160.0, 40.0); 500 | glVertex2f(135.0, 40.0); 501 | glEnd(); 502 | glPopMatrix(); 503 | glPushMatrix(); 504 | glTranslated(e, 300.0, 0.0); 505 | glColor3f(1.0, 0.0, 0.0); 506 | glBegin(GL_POLYGON); //lower triangle 507 | glVertex2f(135.0, 40.0); 508 | glVertex2f(160.0, 40.0); 509 | glVertex2f(160.0, 37.0); 510 | glVertex2f(145.0, 30.0); 511 | glVertex2f(135.0, 30.0); 512 | glEnd(); 513 | glPopMatrix(); 514 | glPushMatrix(); 515 | glTranslated(e, 300.0, 0.0); 516 | glColor3f(1.0, 0.0, 0.0); 517 | glBegin(GL_POLYGON); //back wing 518 | glVertex2f(0.0, 55.0); 519 | glVertex2f(0.0, 80.0); 520 | glVertex2f(10.0, 80.0); 521 | glVertex2f(40.0, 55.0); 522 | //glVertex2f(165.0,40.0); 523 | glEnd(); 524 | glPopMatrix(); 525 | glPushMatrix(); 526 | glTranslated(e, 300.0, 0.0); 527 | glColor3f(1.0, 0.0, 0.0); 528 | glBegin(GL_POLYGON); 529 | glVertex2f(65.0, 55.0); 530 | glVertex2f(50.0, 70.0); 531 | glVertex2f(75.0, 70.0); 532 | glVertex2f(90.0, 55.0); 533 | //glVertex2f(165.0,40.0); 534 | glEnd(); 535 | glPopMatrix(); 536 | glPushMatrix(); 537 | glTranslated(e, 300.0, 0.0); 538 | glColor3f(1.0, 0.0, 0.0); 539 | glBegin(GL_POLYGON); 540 | glVertex2f(70.0, 40.0); 541 | glVertex2f(100.0, 40.0); 542 | glVertex2f(80.0, 15.0); 543 | glVertex2f(50.0, 15.0); 544 | glEnd(); 545 | glPopMatrix(); 546 | } 547 | void myinit() 548 | { 549 | glClearColor(0.9f, 0.6f, 0.0f, 0.0f); 550 | glColor3f(1.0, 0.0, 0.0); 551 | glPointSize(1.0); 552 | glMatrixMode(GL_PROJECTION); 553 | glLoadIdentity(); 554 | gluOrtho2D(0.0, 499.0, 0.0, 499.0); 555 | } 556 | void main(int argc, char *argv[]) 557 | { 558 | glutInit(&argc, argv); 559 | glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 560 | glutInitWindowSize(500.0, 500.0); 561 | glutInitWindowPosition(0, 0); 562 | glutCreateWindow("AERO"); 563 | glutDisplayFunc(display); 564 | myinit(); 565 | glutTimerFunc(100, update, 0); 566 | glutMainLoop(); 567 | } 568 | -------------------------------------------------------------------------------- /images/gif_img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/git-ruthvik/Computer-Graphics-MiniProject/9965675587c39eb7d2f585e3e9522e6dfe921853/images/gif_img.gif -------------------------------------------------------------------------------- /images/lastflight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/git-ruthvik/Computer-Graphics-MiniProject/9965675587c39eb7d2f585e3e9522e6dfe921853/images/lastflight.jpg --------------------------------------------------------------------------------