Professional Documents
Culture Documents
CG Mini Project Atom Simulaiton Final Report
CG Mini Project Atom Simulaiton Final Report
CERTIFICATE
1………………………. 2……………………
………………………... …………………….
ACKNOWLEDGEMENT
We are very thankful to the principal Dr. G PUNDARIKA for being kind enough to provide
me an opportunity to work on a Project in this institution.
We are also thankful to Prof Dr. Vasanth G, HOD, Department of Computer Science, for
her co-operation and encouragement at all moments of my approach.
Prof. Sri Ramachandra L, Professor, as our Project Guide, for her ideas and co-operation
showed on us during my venture and making this Project a great success.
We would also like to thank my parents and well-wishers as well as my dear classmates for
their guidance and their kind co-operation.
Finally, it is my pleasure and happiness to the friendly co-operation showed by all the staff
members of Computer Science Department, GECR.
ABSTRACT
Everything you see around you is made up of atoms, and all atoms consist of subatomic
particles. In the Atom simulation, you will learn the names of the basic subatomic particles and
understand.
As a part of the project, you’ll see how the electrons are revolving around the nucleus in
their respective orbits. One can see and spot the nucleus, atoms and electrons and can understand
how an electron revolves around the nucleus. The project has made in such a way that one can
easily understand the simulation of atoms.
This project has been developed in Windows OS with interfacing keyboard and mouse
with menu driven interface. And plans to include lighting, shading and other features in future
enhancement.
This project is written in C and used OpenGL (Open Graphics Library). Open Graphics
Library is a cross-language, cross-platform application programming interface for rendering 2D and
3D vector graphics. The API is typically used to interact with a graphics processing unit, to
achieve hardware-accelerated rendering.
Table of Contents
CHAPTER 1
INTRODUCTION
1.1 Aim 1
1.2 Introduction to Open GL 1
1.3 Project related concepts 2
1.4 Interface 3
CHAPTER 2
REQUIREMENT SPECIFICATION
CHAPTER 3
DESIGN
3.1 Window design 5
3.2 Menu bar 5
3.3 Simulation display 6
CHAPTER 4
IMPLEMENTATION
4.1 Functions Used 7
CHAPTER 5
TESTCASES 10
CHAPTER 6
SNAPSHOTS 11
CHAPTER 7
CONCLUSION & FUTURE WORK 18
REFERENCES 18
List of Figures
List of Tables
1.1 Aim
The aim of this project is to develop a 2-D atom simulator, which contains options
like selecting the user desired element, simulating the selected element. And also
stopping the simulation when user wants. The interface should be user friendly and
should use mouse and keyboard interface for the interaction with the user. The main
goal is to show the users how an element structure is and how the electrons revolves
around the nucleus so that one can easily get the knowledge of atom.
GLUT, short for OpenGL Utility Toolkit, is a set of support libraries available on every
major platform. OpenGL does not directly support any form of windowing, menus, or
input. That's where GLUT comes in. It provides basic functionality in all of those areas,
while remaining platform independent, so that you can easily move GLUT-based
applications from, for example, Windows to UNIX with few, if any, changes.
1) User Interface- User should be able to select an element and start the
simulation on their own. They can start, stop and change the elements of
their choice and after this they can exit the simulation.
2
1.4 INTERFACES
Mouse interface
Select element:
When the user clicks the right click button on the mouse, the screen
will be prompted with the list of options. First option is to select the
user desired element from the list. The list contains elements from
Hydrogen to Neon for the simulation, that is from atomic number 1
to atomic number 10.
Simulate:
Stop simulation:
If a user selects this option, the simulation will be paused.
Exit:
The program execution will be terminated and the window will be destroyed
after selecting this option.
Keyboard Interface
3
CHAPTER 2
REQUIREMENTS SPECIFICATION
The hardware requirements are very minimal and the software can run on most of the
machines.
4
CHAPTER 3
DESIGN
5
3.3 Simulation display
As soon as user selects the element and click on the simulate option, the electrons around
the nucleus starts revolving around the nucleus within their orbit.
6
CHAPTER 4
IMPLEMENTATION
glutMouseFunc(args): glutMouseFunc sets the mouse callback for the current window.
When a user presses and releases mouse buttons in the window, each press and each
release generates a mouse callback. The button parameter is one of
GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, or GLUT_RIGHT_BUTTON.
7
For systems with only two mouse buttons, it may not be possible to generate
GLUT_MIDDLE_BUTTON callback. For systems with a single mouse button, it may be
possible to generate only a GLUT_LEFT_BUTTON callback. The state parameter is
either GLUT_UP or GLUT_DOWN indicating whether the callback was due to a release
or press respectively. The x and y callback parameters indicate the window relative
coordinates when the mouse button state changed. If a GLUT_DOWN callback for a
specific button is triggered, the program can assume a GLUT_UP callback for the same
button will be generated (assuming the window still has a mouse callback registered)
when the mouse button is released even if the mouse has moved outside the window.
8
glutKeyboardFunc(args): glutKeyboardFunc sets the keyboard callback for the current
window. When a user types into the window, each key press generating an ASCII
character will generate a keyboard callback. The key callback parameter is the generated
ASCII character. The state of modifier keys such as Shift cannot be determined directly;
their only effect will be on the returned ASCII data. The x and y callback parameters
indicate the mouse location in window relative coordinates when the key was pressed.
When a new window is created, no keyboard callback is initially registered, and ASCII
key strokes in the window are ignored. Passing NULL to glutKeyboardFunc disables the
generation of keyboard callbacks. During a keyboard callback, glutGetModifiers may be
called to determine the state of modifier keys when the keystroke generating the callback
occurred.
9
CHAPTER 5
TESTING
TEST CASES
Sl. Functionality Comments Remarks
No
1. Mouse right click It shows menu bar to user. Pass
10
CHAPTER 6
SNAPSHOTS
11
Figure 6.3: Menu Interface
12
Figure 6.5: Helium Simulation
13
Figure 6.7: Beryllium Simulation
14
Figure 6.9: Carbon Simulation
15
Figure 6.11: Oxygen Simulation
16
Figure 6.13: Neon Simulation
17
CHAPTER 7
CONCLUSION
This atom simulation is very good project. Users can very easily understand the structure
of an element. The interface is mouse driven and the user can select a function by clicking.
And also, the interface supports keyboard interface. We have tried our best to make this
simulator very realistic, so that user can easily understand the concepts of electrons,
orbits, atoms and nucleus etc.
FUTURE ENHANCEMENTS
The following are some of the features that are planned to be supported in the future
versions of the atom simulator.
Adding all the elements from the periodic table.
Features like showing the simulation with all the important details of an
element.
Adding a search bar for selecting an element from the list of all the elements.
Making the simulation in 3-D.
REFERENCES
18