This is assignemnt work for a course that I do. I am a novice programmer &
am trying to understand
how to define the problem then implement them in code. Any help & advice
would be most appreciated.
Please note that I would like answers to all the problems so that I can use
them to work on biger problems in the future

The aim of this assignment is to exercise your skills in using Java to develop
a program for a computer graphics problem. You may work as an individual
or you may
team up with someone else to work as a pair.

You must choose one of the alternative assignments listed below.

A1: Rubberbanding and transformations

The first stage is to allow the user to use the technique of ‘rubberbanding’
to interactively construct a simple picture that represents the logo for
a fictitious company.
The rubberbanding process must support the addition, movement and deletion
of points to create the lines that make up the logo. The interface should
then allow the
user to press separate buttons to apply up to four different repeated transformations
in order to make the logo look more impressive. Figure 1 gives some examples
applied to the logo made of the letters ‘IMAGE’ and to a simple logo in the
shape of a bird that you might like to consider. To gain some extra marks,
you could
make these examples a little more impressive by using different colours for
each repetition of the logo or filling each repetition with a solid colour.

A2: Rubberbanding and animation

The first stage is to allow the user to use the technique of ‘rubberbanding’
to interactively construct a drawing of a simple object, e.g. the outline
of a bird as shown in
Figure 1. The rubberbanding process must support the addition, movement and
deletion of points to create the lines that make up the object. The interface
should
then allow the user to press a button labelled ‘bounce’, whereupon the picture
will automatically move around the screen bouncing off the edges of the screen
using a
simple angle of reflection calculation. To gain some extra marks, you could
leave a trail behind the moving object that could be made up of the object
itself drawn
using a lighter colour.

A3: Hierarchical transformations

For this assignment you should create a simulation of a robot arm that can
be manipulated by a user. As described in the lecture notes (and shown in
Figure 2) the
robot arm should be made up of 5 pieces and the user should be able to alter
each piece in its local coordinate system, with the program combining all
the separate
pieces to draw the robot arm in the world coordinate system.

For this project, you will have to address the problem of drawing all the
different coordinate systems on the screen at once, and manipulating each
separate piece in
its own coordinate system using suitable controls. As an example, you might
manipulate the upper arm of the robot using buttons to control the increase
or decrease
in rotation angle and length in the upper arm’s local coordinate system.
As you changed these values, the complete robot arm in the world coordinate
system would
also move accordingly.

Deliverables

For each project, the deliverables are as follows:

Introduction page – name, user_id, module, lecturer, project title,
date, copy of readme.txt file on the accompanying floppy disc. The readme.txt
file should
include names of relevant files on the disc and how to run the program.
The program must work on a PC (so do not just test it on a Sun).
Brief design document, (maximum 3 pages). Include a schematic diagram
that shows the relationship between the classes in your system, a state diagram(s)
to show the user interaction and a diagram of the interface design.
For each diagram give explanatory accompanying text, e.g. for the interface
diagram,
explain why the interface was designed as it was. Hand drawn diagrams
are ok.
User guide (maximum 4 pages, including screen shots) – include a simple
worked example, showing what the output should be. (I will follow this worked
example as an initial test.)
Discussion and conclusions document, including time taken on the project
(maximum 1 page). Also (each person should) include answers to the following:
What is good about this work is…
What is not so good about this work is…
What I would need to do to make it better is…
I took… amount of time on the design, …amount of time on the implementation
and … amount of time on the testing because…
Program listings – load the source code into Microsoft Word and print
out as font Courier New, size 8, with each new class starting on a separate
page.
A disc (labelled with name, course, project title) with appropriate
subdirectories containing the complete Java source and compiled byte code
for the system.
You should also zip all the source code, executable code and documentation
and send it to me via e-mail. This way I will have a backup copy of all your
work if, for some reason, the disc does not work.

Except for the program listings, all other documentation should be printed
in Times New Roman, size 12 (or equivalent if Microsoft Word is not being
used).

Marking

Each program will be run and initially tested by following the details in
the user guide. Marks will be deducted for ‘sloppy’ documentation – this
includes the program
code.

Basic marks will be given for a basic tool. The program must work, so at
least write stubs for functions that are not completed. Marks will be split
approximately
equally between (i) a satisfactory working tool and (ii) user and design
documentation and well-structured program code. A small amount of marks are
reserved for
a polished product and a little imagination.