代写CS 770/870 Assignment 4代写C/C++编程

- 首页 >> Java编程

CS 770/870 Assignment 4

•  Due: Thursday, Oct. 3rd

•  Late penalty: Fri: -5, Sat/Sun/Mon: -10, Tue: -20 Wed: -50 Thu: -100

Write a program to draw and control this robot:

Figure 1: .

Specifications

The robot has the following body parts:

PART

COLOR

SHAPE

base

beige

box, 2x2x2

piston

green

cylinder, r=1,h=2

ball

orange

sphere,r=1

torso

beige

box, 2x1x4

head

beige

cylinder, r=0.75,h=1

eyes

red,blue

sphere, r=0.2

shoulder & elbow joints

green

cylinder, r=0.5,h=1

arm bones

beige

box, 1x1x2

The base of the robot should positioned with its center at (0 0 0).

The piston initially sits inside the base, and can be raised out of it. It can also turn.

The ball is attached to the top of the piston, and tilts forward/backward. The torso is attached to the sphere, and moves with it.

The head is linked to the torso. It can turn up/down (like a“yes”gesture) or le什/right (like a“no”gesture). The eyes are fixed to the head.

The shoulder joints are attached to the torso, and turn outward (so the upper arms move away from the body). The upper arms are attached to the shoulder joints.

The elbow joints are attached to the upper arms, and turn so that the elbows bend as human elbows do. The lower arms are attached to the elbow joints.

Controls

I am providing code, including a primitive keyboard-driven interface for adjusting the figure’s parameters. It uses these

keys:

•  K : next parameter (shi什-K to go to LAST parameter)

•  J : previous parameter (shi什-J to go the FIRST parameter)

•  I : increase current parameter (shi什-I to set to its maximum value)

•  M : decrease current parameter (shi什-M to set to its minimum value)

•  SPACE : show the state of all the parameters.

These are implemented in robot_controller .cpp, robot_view .cpp, and scene_parameters .cpp. You can also control the camera:

•  UP/DOWN   arrow: move eye up/down, keeping look-at point fixed

•  LEFT/RIGHT   arrow : move eye le什/right, keeping look-at point fixed

•  Shift  UP/DOWN  arrow: move eye forward/backward. Finally, you can toggle flags in the Robot_View class:

•  S : show/hide the body parts

•  G : show/hide the reference grid

•  B : show/hide the basis vectors

Your Tasks

1.  [45 points] Implement the Shape_Maker::cylinder(float n_slats ) method, in the file shapes.cpp. This should return a Mesh* with three Vertex_Array* parts: the base, the top, and the round sides of a cylinder (it currently returns a cube!).

The cylinder has radius 1, has its axis along the z axis, and extends from z=-1 to z=+1. The round sides should be approximated by n_slats vertical rectangles, stored in a GL_TRIANGLE_STRIP. The top and bottom are each a corresponding polygon with n_slats sides, stored in a GL_TRIANGLE_ FAN.

2.  [55 points] The draw_ robot () function in robot_view .cpp currently draws the torso and le什 upper arm of the figure. Extend it to draw all the parts.

Turn in Your Work

When you are done, go to mycourses.unh .edu, find CS770/870 assignment 4,click the“Submit”button, and upload robot_view .cpp and shapes.cpp. If you modified any other files, upload them too.


站长地图