# interactive drawing and 2D transformation

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:

• 5 pixels for horizontal increment/decrement

• 2 for horizontal enlarging, and 0.5 for horizontal shrinking

• 10◦ for a rotation.

Taidot: C-ohjelmointi, C++ -ohjelmointi, Java

Tietoa työnantajasta:
( 7 arvostelua ) Sanjose, United States

Projektin tunnus: #13150528

## Myönnetty käyttäjälle:

freelancerLatino

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.

\$55 USD 3 päivässä
(117 Arvostelua)
7.3

## 8 freelanceria on tarjonnut keskimäärin %project_bid_stats_avg_sub_26% %project_currencyDetails_sign_sub_27% tähän työhön

hbxfnzwpf

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 environ Lisää

\$150 USD 3 päivässä
(150 arvostelua)
7.0
renardpaul

Hello, expert in OpenGL and C++ programming here. I can implement for you the two required programs: one that will let you interactively draw circles when you left click with your mouse. The other program will do 2D Lisää

\$120 USD 3 päivässä
(79 arvostelua)
6.4
wangbeizou

Hello. How are you. I have read and understood the project. I'm an Expert in Data Structures and Algorithms. And I know well ; Java ,C/C++, Python ,PHP. I'm interested this project. So, firstly I want to discu Lisää

\$90 USD 2 päivässä
(186 arvostelua)
6.5
RushService

Lets discuss the further more details of .But i am not new in this field.I just want to know more details about this project to make it complete.I not only complete project but provide also full support to understand Lisää

\$60 USD 3 päivässä
(40 arvostelua)
5.9
ORLEON

Hello! I am experienced OpenGL software engineer. It would be a pleasure for me to work with you. I am looking forward to receiving a message. Liubomyr

\$30 USD 2 päivässä
(13 arvostelua)
4.4
\$40 USD 1 päivässä
(26 arvostelua)
4.3
GilbertoR

Hi, I'm paxionated by making games as a low-level programmer. I actually making my building blocks for creating my own game engine. I have created a custom memory allocator for managing fragmentation and reducing ti Lisää

\$50 USD 3 päivässä
(2 arvostelua)
0.9