C++代写 ENGINEERING VISUALIZATION

I. Aim
You are required to design and display 3D objects in this project. The project aims to examine your
understanding and application of essential 3D graphics concepts including modelling, projection,
transformation, visible-surface determination, illumination, shading and texture mapping.

II. Tasks
1. Design a 3D object that consists of at least five curved surfaces (e.g. spherical surfaces or cylindrical
surfaces) and at least seven planar surfaces. Display the object in the form of a wire-frame using an
orthographic parallel projection. The coordinates of the object and the projection parameters should be
properly selected so that the projection plane is not perpendicular to a surface of the object. The curved
surfaces can be approximated by a polygon mesh for display. Place your drawing code in the drawing
function of Display_1 (Display_1::Draw(…)) in the sample program ‘EV_Shell_GL_CV’. Your result should
show when the key ‘1’ on the keyboard is pressed.
Listed below are the requirements for this task, which should be addressed in your report.
i. Explain the design of the 3D object. What are the components of the object? How do they join
together? How is each component expressed mathematically? How does your design meet the
requirements specified in this task?
ii. Explain how the object is displayed using an orthographic projection of your choice. What are the
parameters for this particular orthographic projection?
iii. Summarise the C++ source code that you have written for the task using a sequence of steps, a flow
chart or pseudo-code.
iv. Explain each step of your C++ source code clearly so that an experienced reader can repeat the task
to obtain the same result without the need of your C++ code.
v. Include the drawing result of the task in your report.
vi. Explain the drawing result you have obtained (e.g., what has been drawn? Have you drawn what you
are asked to draw?).

2. Rotate the object designed in Task 1 through 360 about an axis that passes through it. Rotate the object by
steps of 5 so that a viewer can see it rotating. The projection parameters should be properly selected so that
the projection plane is not always perpendicular to a surface of the object. Place your drawing code in the
drawing function of Display_2 (Display_2::Draw(…)) in the sample program ‘EV_Shell_GL_CV’. Your
result should show when the key ‘2’ on the keyboard is pressed.
Listed below are the requirements for this task, which should be addressed in your report.
i. Explain how the object is rotated. How is your particular axis for rotation expressed mathematically?
How is your operation of rotation expressed mathematically?
ii. Summarise the C++ source code that you have written for the task using a sequence of steps, a flow
chart or pseudo-code.
iii. Explain each step of your C++ source code clearly so that an experienced reader can repeat the task
to obtain the same result without the need of your C++ code.
iv. Include the drawing result of the task in your report.
v. Explain the drawing result you have obtained (e.g., what has been drawn? Have you drawn what you
are asked to draw?).

3. Repeat Task 2 with the following additional requirements in visualizing your object.
a. Only show the visible surface of the object. It is assumed that the surface of the object is opaque.
b. Use the z-buffer (depth-buffer) algorithm to determine the visible surface.
c. Shade the visible surface using solid colours.
d. Use different colours for different surfaces. Divide each curved surface into at least three parts and shade
the parts with different colours.
Place your drawing code in the drawing function of Display_3 (Display_3::Draw(…)) in the sample program
‘EV_Shell_GL_CV’. Your result should show when the key ‘3’ on the keyboard is pressed.
Listed below are the requirements for this task, which should be addressed in your report.
i. Explain how the visible surface of the object is displayed using the z-buffer (depth-buffer) algorithm
in this case. How does the z-buffer algorithm work? How is it used to determine the visible surface
of your object?
ii. Summarise the C++ source code that you have written for the task using a sequence of steps, a flow
chart or pseudo-code.
iii. Explain each step of your C++ source code clearly so that an experienced reader can repeat the task
to obtain the same result without the need of your C++ code.
iv. Include the drawing result of the task in your report.
v. Explain the drawing result you have obtained (e.g., what has been drawn? Have you drawn what you
are asked to draw?).

4. Repeat Task 2 with the following additional requirements in visualizing your object.
a. Only show the visible surface of the object. It is assumed that the surface of the object is opaque.
b. Use the z-buffer (depth-buffer) algorithm to determine the visible surface.
c. Map texture images to the surfaces of the object.
d. Use different images for different surfaces.
Place your drawing code in the drawing function of Display_4 (Display_4::Draw(…)) in the sample program
‘EV_Shell_GL_CV’. Your result should show when the key ‘4’ on the keyboard is pressed.
Listed below are the requirements for this task, which should be addressed in your report.
i. Explain how a texture image is mapped to a surface with the aid of relevant mathematical equations.
ii. Show the texture images used for this task in your report. Each texture image must be an image of a
natural scene (e.g. an image of the Opera House). It cannot be a computer-generated image.
iii. Summarise the C++ source code that you have written for the task using a sequence of steps, a flow
chart or pseudo-code.
iv. Explain each step of your C++ source code clearly so that an experienced reader can repeat the task
to obtain the same result without the need of your C++ code.
v. Include the drawing result of the task in your report.
vi. Explain the drawing result you have obtained (e.g., what has been drawn? Have you drawn what you
are asked to draw?).
Hints:
(a) A sample program for texture mapping has been posted to vUWS (under “Lecture 12”).
An example of texture mapping to the surfaces of a cube is shown below.

 


程序代写代做C/C++/JAVA/安卓/PYTHON/留学生/PHP/APP开发/MATLAB


本网站支持淘宝 支付宝 微信支付  paypal等等交易。如果不放心可以用淘宝交易!

E-mail: [email protected]  微信:dmxyzl003 工作时间:全年无休-早上8点到凌晨3点


如果您使用手机请先保存二维码,微信识别。如果用电脑,直接掏出手机果断扫描。

 

发表评论