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.
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:
– Horizontal increment
– Horizontal decrement
– Vertical increment
– Vertical decrement
– Horizontal enlarging
– Horizontal shrinking
– Vertical enlarging
– Vertical shrinking
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:
• 5 pixels for horizontal increment/decrement
• 2 for horizontal enlarging, and 0.5 for horizontal shrinking
• 10◦ for a rotation.
Hello, I am expert with c, c++ and opengl since more than 20 years ago...I should be a good option for this project. I can make a genuine version for you. Zero copy+paste.