ASH Graph Plotter

  • by asg_labsadmin


This was our(Harshal, Shaunak and Aakash(me)) first project in college during the course BE in Computer Science at MS University of Baroda. We were supposed to create something for the subject Object Oriented Programming during the III semester. The project show have all the features we learned theoretically like Abstraction, Encapsulation, friend functions, Inheritance etc. All of us met and started thinking about the project. We were only introduced to Turbo C++ and were supposed to develop in that, sadly that was the only tool/compiler we knew. So graphically we were limited to the DOS display capabilities.

We first came up with an idea to create a simulation of the Solar System, displaying rotation speeds and astronomical figures for the planets in it. For some time that was all we could think about. Then one day I don’t remember who but introduced the idea of a graph plotter. It clicked and all of us agreed to create one. We were all really exited to start but had no clue about the leads. We had UML and stuff but we never paid attention to it(frankly we all bunked classes ;)). So we started off by creating a grid by drawing lines of the DOS screen.


We then went on to create the necessary functions to evaluate a polynomial mathematically for different values of its variables. It was named polycal(). It made us really happy when the function worked. Then we tried plotting our first no-references-defined-random graph. I just couldn’t get it right even after trying for hours, then at around 4PM I found the bug. Sala ek variable ko galat value diya tha(the variable value was not proper). Then finally our first graph was visible and the nature of the graph was accurate enough to meet our expectations.


We then moved on towards the other functions namely Logarithmic, Exponential and Trigonometric. As we had already created the function to evaluate values of polynomial equations,  plotting Exponential and Log functions was easy. The reason being we took functions of the form ‘log(polynomial)’ and ‘e^(polynomial)’. The problem we faced was of plotting huge values that crossed the boundaries of our graph(screen). So we designed an Autoscale function which would take in array of values and scale them down to permissible values. Soon after that Log function raised its hand asking as to how would it calculate log for -ve numbers. We addressed it by designing another function which will take in both the arrays for x and y values(y being empty). It will calculate the polynomial and if the result is negative then it will drop that particular value from the x array. I dont remember the name of the function but lets call it “Autodrop” for now.


Inspired by the CRO in our physics lab, I tried doing something more appealing graphically to our Graph plotter. So I designed a new look for our graph with proper boundaries, different colors and adding some animation to it. The new design looked great and all of us agreed to go with it. We displayed the scale and provided some navigation controls.

The only problem left was with the Trigonometric functions. The values our display could plot was integers and not floating point numbers. The trig values of sine and cosine being limited to [0,1] were not displayed appropriately on the graph. Then one night it just worked. Dividing by the number 6 was our answer, not 7 not 8 just 6. It is still a mystery to us.

All being said and done we added one more final touch of a splash screen inspired by the Footprints(college fest) posters designed by Nakul Purohit. On the last night we prepared the report got Prachi Jain’s 10 MP(big deals !!) at 10 in night, clicked the screenshots and had a good night’s sleep. The next day we submitted our project but the response was not as we expected(they missed our splash screen 🙁 ).But never mind we were satisfied !

Some screenshots of the final product :

Splash screen , Main Menu , Function Selection , Polynomial ,Sine , Log , Exponential , Cotangent 

    20 Feb, 2011

    ”’ i was reading this same blog topic from another blog, i guess this topic is getting popular ..:

    24 Feb, 2011
    Filmy online

    Neat blog! Is your theme custom made or did you download it from somewhere? A theme like yours with a few simple tweeks would really make my blog jump out. Please let me know where you got your design. Bless you

    25 Feb, 2011
    Filmy online bez limitow

    Greetings! I’ve been following your weblog for some time now and finally got the courage to go ahead and give you a shout out from Porter Texas! Just wanted to mention keep up the fantastic work!

    26 Feb, 2011

    Good article and a nice summation of the problem. My only problem with the analysis is given that much of the population joined the chorus of deregulatory mythology, given vested interest is inclined toward perpetuation of the current system and given a lack of a popular cheerleader for your arguments, I’m not seeing much in the way of change.

    09 Mar, 2011
    Filmy Online bez limitow

    The root of your writing whilst sounding agreeable in the beginning, did not really sit perfectly with me after some time. Somewhere within the sentences you were able to make me a believer but just for a while. I nevertheless have a problem with your leaps in logic and you might do well to fill in all those gaps. In the event you actually can accomplish that, I could certainly end up being fascinated.


Let us know your thoughts: