AQUANIUM
AQUANIUM
PROJECT
ON
“AQUANIUM”
Mr. S. S. PATIL
SUB- CGR
MUDAL-416209
Academic Year
2024-25
PROJECT ON
“AQUANIUM”
INTRODUCTION
ABOUT COMPUTER GRAPHICS:
Graphics are defined as any sketch or a drawing or a special network that pictorially
represents some meaningful information. Computer Graphics is used where a set of
images needs to be manipulated or the creation of the image in the form of pixels and is
drawn on the computer. Computer Graphics can be used in digital photography, film,
entertainment, electronic gadgets, and all other core technologies which are required. It
is a vast subject and area in the field of computer science. Computer Graphics can be
used in UI design, rendering, geometric objects, animation, and many more. In most
areas, computer graphics is an abbreviation of CG. There are several tools used for the
implementation of Computer Graphics. The basic is the <graphics.h> header file in
Turbo-C, Unity for advanced and even OpenGL can be used for its Implementation. It
was invented in 1960 by great researchers Verne Hudson and William Fetter from
Boeing. It is also an extremely effective medium for communication between man and
computer; a human being can understand the information content of a displayed diagram
or perspective view much faster than he can understand a table of numbers or text
containing the same information. Thus computer graphics is being used more extensively.
There is a lot of development in hardware and software required to generate images, and
nowadays the Cost of hardware and software is dropping rapidly. Due to this, interactive
computer graphics is becoming available to more and more people.
PROJECT DESCRIPTION
The idea behind this project is to display the aquarium with computer graphics. This
graphics package is based on the OpenGL library functions. The programming language
used here is C using OpenGL libraries. In this project, we are demonstrating the screensaver
in which the fishes will have a random motion and the speed of the fish increases with the
pressing of “i” button and decreases with the pressing of “d” button. To decorate the
aquarium, we are using air bubbles at the left bottom of the aquarium. The bubbles will be
moving in the upward direction. We have placed some water plants at the bottom of the
aquarium. Pebbles are placed in the aquarium which will make my aquarium look complete.
The plants and pebbles are placed using a random color function. The Program demonstrate
a simple illustration of how a Aquarium looks like, with option of providing foods,
assembling the fishes as well as the poison food to decrease the population of fish inside. It
is little bit complex project and may appear blur in some of the screen or even not
fit.Change according to Screen resolution is required
Computer graphics started with the display of data on hardcopy plotters and cathode ray
tube (CRT) screens soon after the introduction of computers themselves. It has grown to
include the creation, storage and manipulation of models and manipulation of models and
images of objects. These models come from a diverse and expanding set of fields, and
include physical, mathematical, engineering, architectural, and even conceptual structures,
natural phenomena, and so on. Computer graphics today is largely interactive.
LITERATURE SURVEY
ABOUT OPENGL:
It is a Software Interface to Graphics Hardware. This interface Consists of about 150
Distinct Commands which is used to specify the objects and operations needed to produce
interactive three dimensional applications. It is a Hardware-independent Interface. It has
no command for windows or user input handling. It does not include low-level, device
independent, portable graphics subroutine package.
• Main purpose is to render two and three dimensional objects into a frame
• Comprises several libraries with varying levels of abstraction: GL, GLU and
GLUT.
• Focus on rendering.
ADVANTAGES OF OPENGL
1. With different 3D accelerators, by presenting the programmer to hide the complexities of
interfacing with a single, uniform API. 2. To hide the differing capabilities of hardware
platforms, by requiring that all implementations support the full OpenGL feature set (using
software emulation if necessary). Computer graphics is a sub-field of computer science
which studies methods for digitally synthesizing and manipulating visual content. Computer
graphics studies the manipulation of visual and geometric information using computational
techniques. It focuses on mathematical & computational foundations of image generation
and processing rather than purely aesthetic issues. Our project \"Rocket Launch\" project
consists of three scenes. The first scene just shows the rocket, which is stable and not
moving. The second scene will be of the launching rocket. In addition, the third scene will
be of the rocket that is being send in the space. User can’t stop the rocket once launched
after that three phase will come Rocket at launch station, then in sky at last in Space. The
objects are drawn using GLUT functions.
REQUIREMENT SPECIFICATION
Hardware Requirements:
This project requires a hardware requirement of a processor of speed 333MHz, 32MB or
above
RAM capacity, a graphic card, a keyboard and a min 100kb of hard disk space.
Requirements in detail:
• Computer : IBM Compatible
• Micro Processor : Pentium 1 Onwards/amd
• Ram : 32 MB or Higher
• Hard Disk Driver : 2 GB or Higher
• Monitor : Standard VGA Monitor
• Keyboard : 102 Keys Keyboard
• Mouse : Yes
Software Requirements
A software requirements specification (SRS), requirements specifications for a software
system, is a description of the behavior of a system to be developed and may include a set of
use cases that describe interactions the users will have with the software. In addition it also
contains non-functional requirements. Non-functional requirements impose constraints on
the design or implementation.
Operating system : WINDOWS 7/XP/WINDOWS 8.1/Ubuntu
Language Used : C++
API : OpenGL
PROTOTYPES
Many inbuilt OpenGL API along with the user defined functions are used in a hierarchical
way. The functions which are used in the mini project are briefly discussed.
GLU FUNCTIONS:
glVertex*(): The * indicate either two characters of the form nt or ntv, where n is the
number of dimensions(2,3,4); it- is the data type, such as integer(i), float(f).
glBegin(): It specifies the geometric type that we want our vertices to define the
types can be.
GL_LINE_LOOP: Draw line segment from the final vertex to the first.
GL_LINE_STRIP: Successive vertices are to be connected.
GL_POLYGON: Line segments connect the final vertex to the first. The interior is filled
according to the state of the relevant attributes.
glEnd( ): Terminates a list of vertices.
glColor3f( ): Sets the present RGB colors.
glClearColor( ): Clear the color buffer.
glFlush( ): Forces any buffered OpenGL commands to execute.
glutInit( ): Initializes GLUT.
glutCreateWindow( ): Creates a window on the display and label the window.
glutInitDisplayMode( ): Request a display with the properties in mode.
glutMainLoop( ): Cause the program to enter an event processing loop.
glutPostRedisplay(): Requests that the display call back be executed after the current call
back returns.
glutDisplayFunc( ): It registers the display function ‘func’ that is executed when the
window needs to be redrawn.
glutKeyboardFunc( ): It registers the keyboard call back function f. The call back function
returns the ASCII code of key pressed and the position of the mouse.
glutInitWindowSize( ): It specifies the initial height and width of the window in pixels.
glEnable: Enables an OpenGL feature.
glutAddMenuEntry( ): Adds a menu entry to the bottom of the current menu.
glTranslatef( ): Multiply the current matrix by the translation matrix.
IMPLEMENTATION
#include<windows.h>
#include<GL\glut.h>
#include <GL/glu.h>
#include<math.h>
#include <stdlib.h>
#include<stdio.h>
#define PI 3.1416
///==================================================///
/// AIYAN HASIB ///
/// BE In CSE
///
/// CAMBRIDGE INSTITUTE OF TECH///
///==================================================///
int flag=0,ch=0,ch1=0;
floata=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,s=0.7,x=0,y=0;
void create_menu(void);
void menu(int);
void disp1(void);
void disp2(void);
void disp3(void);
void disp4(void);
void delay(int time)
{
float i,j,k;
for(i=0;i<time;i=i+0.001);
for(j=0;j<time;j=j+0.001);
for(k=0;k<time;k=k+0.001);
}
void fish1()
{
glColor3f(1.0,0.0,0.0);//red fish
glBegin(GL_POLYGON);
glVertex2f(0.7+a,0.05);
glVertex2f(0.75+a,0.1);
glVertex2f(0.85+a,0.05);
glVertex2f(0.75+a,0.0);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.83+a,0.05);
glColor3f(1.0,1.0,0.0);
glVertex2f(0.9+a,0.09);
glVertex2f(0.9+a,0.01);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0,1.0,0.0);
glVertex2f(0.75+a,0.095);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.79+a,0.125);
glVertex2f(0.77+a,0.07);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0,1.0,0.0);
glVertex2f(0.75+a,0.007);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.795+a,-0.035);
glVertex2f(0.775,-0.15);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.755,-0.1);
glVertex2f(0.795,-0.05);
glVertex2f(0.775,-0.15);
glEnd();
glColor3f(0.0,0.0,0.0);
glPointSize(4.0);
glBegin(GL_POINTS);
glVertex2f(0.73,-0.135);
glEnd();
}
void fish5()
{
glColor3f(0.0,0.0,1.0);//blue fish
glBegin(GL_POLYGON);
glVertex2f(-0.7-e,-0.25);
glVertex2f(-0.75-e,-0.3);
glVertex2f(-0.775-e,-0.3);
glVertex2f(-0.85-e,-0.25);
glVertex2f(-0.775-e,-0.2);
glVertex2f(-0.75-e,-0.2);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(-0.83-e,-0.25);
glVertex2f(-0.9-e,-0.29);
glVertex2f(-0.9-e,-0.21);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(-0.775-e,-0.2);
glVertex2f(-0.79-e,-0.125);
glVertex2f(-0.75-e,-0.2);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(-0.75-e,-0.3);
glVertex2f(-0.795-e,-0.35);
glVertex2f(-0.775-e,-0.3);
glEnd();
glColor3f(0.0,0.0,0.0);
glPointSize(4.0);
glBegin(GL_POINTS);
glVertex2f(-0.73-e,-0.235);
glEnd();
}
void fish55()
{
glColor3f(0.0,0.0,1.0);//blue fish
glBegin(GL_POLYGON);
glVertex2f(0.7,-0.25);
glVertex2f(0.75,-0.3);
glVertex2f(0.775,-0.3);
glVertex2f(0.85,-0.25);
glVertex2f(0.775,-0.2);
glVertex2f(0.75,-0.2);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.83,-0.25);
glVertex2f(0.9,-0.29);
glVertex2f(0.9,-0.21);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.775,-0.2);
glVertex2f(0.79,-0.125);
glVertex2f(0.75,-0.2);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.75,-0.3);
glVertex2f(0.795,-0.35);
glVertex2f(0.775,-0.3);
glEnd();
glColor3f(0.0,0.0,0.0);
glPointSize(4.0);
glBegin(GL_POINTS);
glVertex2f(0.73,-0.235);
glEnd();
}
void fish6()
{
glColor3f(1.0,0.0,0.0);//red1 fish
glBegin(GL_POLYGON)
glVertex2f(0.7+f,0.25);
glVertex2f(0.75+f,0.3);
glVertex2f(0.775+f,0.3);
glVertex2f(0.85+f,0.25);
glVertex2f(0.775+f,0.2);
glVertex2f(0.75+f,0.2);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.83+f,0.25);
glVertex2f(0.9+f,0.29);
glVertex2f(0.9+f,0.21);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.775+f,0.3);
glVertex2f(0.79+f,0.4);
glVertex2f(0.75+f,0.3);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.775+f,0.2);
glVertex2f(0.79+f,0.1);
glVertex2f(0.75+f,0.2);
glEnd();
glColor3f(0.0,0.0,0.0);
glPointSize(4.0);
glBegin(GL_POINTS);
glVertex2f(0.73+f,0.265);
glEnd();
}
void fish555()
{
if(q==0.75){
glColor3f(0.0,0.0,1.0);//blue fish
glBegin(GL_POLYGON);
glVertex2f(0.2,0.55);
glVertex2f(0.25,0.6);
glVertex2f(0.275,0.6);
glVertex2f(0.35,0.55);
glVertex2f(0.275,0.5);
glVertex2f(0.25,0.5);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.23,0.55);
glVertex2f(0.35,0.59);
glVertex2f(0.35,0.51);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.275,0.6);
glVertex2f(0.29,0.7);
glVertex2f(0.25,0.6);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(0.275,0.5);
glVertex2f(0.29,0.4);
glVertex2f(0.25,0.5);
glEnd()
glColor3f(0.0,0.0,0.0);
glPointSize(4.0);
glBegin(GL_POINTS);
glVertex2f(0.23,0.565);
glEnd();
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(0,0);
glutInitWindowSize(500,500);
glutCreateWindow("fish");
myinit();
create_menu();
glutIdleFunc(idle);
glutDisplayFunc(display);
glutMainLoop();
}
FUTURE SCOPE:
Air Cooler:
Sometime the temperature of inside the aquarium or we can say the temperature of water
increases in summers that' s Why fish die because Of the sudden increase in the temperature.
As there is nothing in the aquarium that could reduce the temperature when it has increased
so a small air cooler or a fan can be used to decrease the temperature in case the temperature
Increases up.
Solar cell:
As the aquarium needs 24/7 constant power in order to work so lots Of power is consumed,
GSM mobile also needs a separate constant power. Lots of power is utilized and it can be a
burden on your pocket so in order to reduce this, solar cells or panels can be used to get the
constant power. so that there Will be no issue Of over billing and burden on your pocket. If
in case Of power failure. the aquarium would not stop its work.
Heater:
In winter, most of the time, the temperature of the water goes down like if it is in snowfall
area then its temperature would go suddenly down and the sudden variation in the
temperature can kill the fish inside the water. In our project we have used a bulb because we
live in a region where temperature does not change suddenly. Heater can also used in order
to increase the temperature if it has fallen down
SNAPSHOTS
The figure represents the aquarium with the fish ecofriendly environment. Also this figure
shows how we feed the fishes, play with them, assemble them and poison them and the
movement of the fish in it.
CONCLUSION
As you know different types of water have different types of habitats that are needed for
different types of animals to survive. There are several organizations set up to protect these
habitats to make sure that these animals can continue to live in an environment that is
beneficial to them.
REFERENCES
[1] A.P Godse, Dr. D.A Godse, “Computer Graphics And Visualization”, Technical