part 1:
Specifically, you will develop an OpenGL program that allow a user to draw a circle in a position of the OpenGL window by clicking the left button of a mouse. Furthermore, your program should allow the user to draw multiple circles. When the user is done with drawing, he/she can terminate the program by entering the ’q’ or ’Q’.
Your code will need to maintain a data structure to record the position of each left-click of mouse. For simplicity, you can use a 2-dimensional array, and assume that the maximum number of left-click is 100. Each time, when there is a GLUT LEFT BUTTON event, your code should insert the current mouse position to the 2-dimensional array.
There are two different coordinate systems in this simple drawing. The mouse position is under the matrix coordinate system, and a vertex for drawing OpenGL geometry primitive is under the geome- try coordinate system. So your code should transform the mouse position from matrix coordinate to geometry coordinate. For simplicity, you can assume the height of the window is fixed.
part 2:
You will develop an OpenGL program that allow a user to perform 2D affine transformation, including translation, scaling, rotation, on a 2D object (e.g., a solid square), by selecting an transformation item from the popup menu. In this project, you can have two-layer menu as follows:
• Translation
– Horizontal increment
– Horizontal decrement
– Vertical increment
– Vertical decrement
• Scaling
– Horizontal enlarging
– Horizontal shrinking
– Vertical enlarging
– Vertical shrinking
• Rotation
– Clockwise
– Counter-clockwise
Your code will need to maintain several geometry parameters of an object, including horizontal and vertical translation, orientation, and scaling factors. You code should include a function (called menu), in which you should update the geometry parameters of the object.
The object should be “complicated”, i.e., a composition of at least 2 OpenGL geometry primitives. The following parameters should be used for an individual 2D transformation:
• 10 pixels for horizontal increment/decrement
• 2 for horizontal enlarging, and 0.5 for horizontal shrinking
• 20◦ for a rotation.
I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environment. I made many great projects using c++, for example, I made the tools which could convert java codes into c++ scripts, of course garbage collection included, this was very similar to a compiler, and was very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
Hi, I have many years of experience in C++ and OpenGL. I know GLUT. I have read the entire description. I can finish this in 1 day. Please message me to get started..
Hello sir,
I am bidding for 3 days for this project. I am using glut for the project. Can I use glut for the project? If so then I'm up for it. Thank you.