# 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.

Beceriler: C Programlama, C++ Programlama, Java

İşveren Hakkında:
( 7 değerlendirme ) Sanjose, United States

Proje NO: #13150528

## Seçilen:

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.

%selectedBids___i_period_sub_7% gün içinde 55%project_currencyDetails_sign_sub_9% %project_currencyDetails_code_sub_10%
(117 Değerlendirme)
7.3

## Bu iş için 8 freelancer ortalamada \$74 teklif veriyor

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 Daha Fazla

\$150 USD in 3 gün içinde
(150 Değerlendirme)
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 Daha Fazla

\$120 USD in 3 gün içinde
(79 Değerlendirme)
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 Daha Fazla

\$90 USD in 2 gün içinde
(186 Değerlendirme)
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 Daha Fazla

\$60 USD in 3 gün içinde
(40 Değerlendirme)
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 in 2 gün içinde
(13 Değerlendirme)
4.4
1 gün içinde %bids___i_sum_sub_32%%project_currencyDetails_sign_sub_33% USD
(26 Değerlendirme)
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 Daha Fazla

\$50 USD in 3 gün içinde
(2 Değerlendirme)
0.9