├── 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
--------------------------------------------------------------------------------