程序代写案例-COMP-3490-Assignment 3

2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1
https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/V
iew?ou=438443 1/5
COMP 3490 Assignment 3
Material covered:
animation techniques
3D transformation and viewing
hierarchical modeling
Notes:
For all programs, use P3D: either Processing or Processing with Java.
Include a readme.txt file that describes the platform you used to test your programs
(Processing version, operating system, graphics hardware), and notes to the marker for
each question (e.g. things that don't work as expected or things that are better than
required).
Electronically submit a copy of your source code files in a single .zip file.
Use the following folder structure within your zip file:
readme.txt
Q1/
Q1.pde
NumberPanel.png
Q2/
Q2.pde
Your assignment submission must run correctly with files in that structure, and as
downloaded. The marker will not reorganize or rename files to make it run.
If your program does not run as submitted, you will lose substantial marks. If you want
to get credit for partially-complete but broken features, it may be best to comment out
the code and mention it in your readme.txt.
Name your zip file in the form LastnameFirstnameA3.zip, replacing LastnameFirstname
with your last and first names.
Unless otherwise noted in the question, your initial window size should be 640x640, and
you do not need to handle window resizing.
You must fill in an honesty declaration for each assignment before you can access the
assignment dropbox.
You must accept and follow all of the academic integrity requirements for the course,
including the Expectations for Individual Work in Computer Science
Question 1: Rocketship
This question is worth 50% of the assignment mark.
Write a P3D/OpenGL program that implements an interactive, goal-directed animation
where the endpoint of each motion is specified by user input. Your program will draw an
object (like a "rocketship") with some position and orientation. When the user clicks the
mouse at some location on the screen, the object will rotate and move to that location in a
Listen
2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1
https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 2/5
physically plausible way. The maximum speed will be set by clicking in a control panel. The
moving object will act as an emitter for a particle system.
Implementation requirements:
The moving object doesn't have to be a "rocketship", but it must be interesting! Use
several geometric primitives and colours. Not just a triangle, like the sample image.
The moving object you choose must have an obvious visible orientation, to make it
clear what direction it is pointed in.
Clicking in the window anywhere except the number panel sets the target location for
moving the object.
The object must rotate towards the target location and move there. The rotation and
translation do not have to be simultaneous.
The translation must be physically plausible. It must include speeding up and slowing
down as it moves from one place to another. You can implement a simple physical
simulation (minimum: velocity and acceleration) or lerp with ease-in-out.
2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1
https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 3/5
The rotation speed may be linear. Optionally, rotation can also speed up/slow down.
You may handle clicking on a new target during motion by either changing the current
motion, by slowing down and stopping and then rotating/moving to the new location,
by ignoring the click, or by completing the current motion and then moving to the new
location.
Clicking on the control panel sets the instance variable value to the corresponding
number (0-9). Use this value to choose the maximum velocity of the object. At 0, the
object rotates but does not translate; at 9, it should move quite fast. This value does not
have to affect rotation speed.
The acceleration/deceleration or ease-in-out should be very obvious at higher velocities.
As the object moves, it will emit particles proportional to its current speed:
Some parameters of the particle system must be clearly and visibly proportional to
the direction of linear motion. For example, the particles may have a direction of
motion tending to the negative of the object's motion.
Particles are not required to be associated with rotational motion.
Some parameters of the particle system must be clearly and visibly proportional to
the speed of linear motion. That is, the faster the object moves, the more and/or
faster and/or larger the particles.
Particle shapes are your choice.
Other than the above, the particle system must incorporate a variety of particle
sizes, colours, motions, and (limited) lifespans, and any other parameters you like.
These parameters must be constructed with a combination of both randomness
and constraints, and must be updated throughout their lifespan.
Whatever choices you make, the on-screen motion should always be smooth and
plausible. Do not skip motions, "jump", "teleport", or allow any other discontinuities in
the motion.
You can use A3Q1.pde from the course web site as a starting point. Options like background
colours and coordinate systems are up to you. You can also change the appearance (but not
the behaviour or purpose) of the number panel image.
Question 2: Walking robot
This question is worth 50% of the assignment mark.
Write a P3D/OpenGL program that draws a 3D animated hierarchically-animated robot that
walks along a surface. Your program will also allow an interactive choice between several
views and projections.
2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1
https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 4/5
Implementation requirements:
The robot consists of a body (torso), two arms, two legs, and a head. The arms and legs
each have two parts ("upper" or "lower"), with a joint in the middle ("elbow" or "knee")
You can draw these parts with any reasonable 3D solid primitives or combinations of
primitives. Their distinction and orientation must be visually obvious: use colours,
outlines, and/or complex/combined primitives to indicate.
The robot's "walk" will be animated hierarchically:
The head will move relative to the torso
The upper arm/leg will rotate relative to the torso
The lower arm/leg will rotate relative to the upper arm/leg
The parts of the robot should connect and move neatly and realistically, though you do
not have to prevent physical impossibilities (such as self-intersection at the joints).
The robot will walk on top of a surface.
The surface must have some kind of detail to ensure it is clearly defined, such as a grid.
It cannot be simply a solid colour.
The surface can extend beyond the edges of the display.
The robot will walk in a straight line, from one edge of the world to the other.
When the robot walks to the edges, it should still be (mostly) visible.
2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1
https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 5/5
You must implement three different static views (fixed camera positions) of the robot
and the environment, and two different projections: one orthographic and one
perspective.
Pressing the space bar will cycle through the three views and switch between the
orthographic perspective projections. Given views v0,v1,v2 and projections p0,p1,
hitting space cycles through v0/p0, v1/p0, v2/p0, v0/p1, v1/p1, v2/p1, and back to the
start.
The initial view should show all of the robot.
The robot may move off the edges of the screen, though it should not be visibly clipped
within the screen under any circumstances (e.g. no near/far clipping). Try to keep the
robot as visible as possible.
Satisfying all of these requirements will make you eligible to earn an "A". To be able to earn
an "A+", you need to implement one more feature from the following list:
Use a different geometry for at least one of the parts of the robot's body. You can
define this yourself or import a 3D model as an OBJ file. There are many sources of free
OBJ files, which you can use and cite. Or:
Add geometry for the joints (elbows and knees) to connect them more realistically. Or:
Allow the robot to follow a non-straight line path by enabling it to "turn". The turn must
include some unique animation different than the normal "walk". The robot can stop
while it is turning. Right-angle turns are fine. Make the robot walk around your surface
continuously.
Use your README file to indicate your choices, your extra feature (if any), and any changes or
additions you have made.

欢迎咨询51作业君
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie