CSci 480 Fall Projects

Project One

Assigned September 1, due September 22.

2D Primitives Sampler: Pop up a window (or show an applet frame in a browser or other viewer) and draw the following:

Make sure your drawn items are not overlapping each other, unless you decide certain placements provide a pleasing aesthetic effect. You may add additional items for aesthetic reasons if you wish, but extra credit will not be awarded.

You may use any language, platform, and graphics library that you wish. You should acknowledge in your report any publicly available information that you use (if it's not obvious by inspection). For example, if you take advantage of some code from a magazine article, that's perfectly alright, but you should state the source and which code came from that source. Attribution of copied code must always be in your source code.

If you decide to do the project as a Web applet, do not link to your source code or put the source code under the public_html directory. Students are to keep their source code secret from other students. You will still need to hand in a paper report with your source code. Source code is to be kept secret from other students. If you turn in a report early, do not put it in a publicly available mail box. You can slip it under my locked office door (SAL 340). If your project is late and you miss my office hours, give it to the office (SAL 300) and they will put it in a time-stamped, dated, and signed sealed envelope. This goes for all four projects.

Report. Your report shall describe the program, show the resulting image(s), and include the source code that you wrote. Comments in code are good. Points will be deducted for bad programming style. Do not include automatically generated code or graphics libraries.

Points will be awarded for writing style and format. Prose content should be portrait mode, block style in 12 point Times font, 1.5 line spacing, and justified right and left. Source code should be printed in landscape mode (sideways on the page) in a 10 point fixed-pitch font (such as Courier). If you don't know what these instructions mean, ask.

Here is an example Microsoft Office '97 Word document you may adapt.

Grading

Product (program): 5 points per feature (40 points total).
Report: 10 points. Total: 50 points.

Project Two

Data Visualizaiton Project: Scientific Graph

Write a program to display data in two formats: vertical bar graph and line graph. User action will toggle between the two data displays. The first dataset is for the line graph and it has two "y" values for each "x" value. The second dataset is for the bar graph.

Dataset One (Line Graph) Pressure in PSI vs. Deflection in Inches. The deflections are for two different stadium dome designs, types 1 and 2.

x     y1        y2
0     0         0
5     4.1       0.075
10    12.0      1.3
20    45.03     8.31
35    144.5     49.125
40    210.125   86.15
55    378.125   207.95
70    612.5     447.375
90    968       851.85
95    1176.125  1140.85
110   1568      1756.15

Dataset Two (Bar Graph) Building Costs Year

Year     Megabucks
1988     27
1989     39
1990     40
1991     91
1992     88
1993     78
1994     37
1995     41
1996     55
1997     61
1998     66
1999     47
2000     25

Put a text title at the top of each of the graphs and label the axes appropriately. Select appropriate tic marks and values for the line graph axes. Use different colors for the two lines, and display the data points as dots or other symbols and connect them with straight line segments. Label the lines on the line graph to distinguish the design type data.

Report

Report requirements are similar to those for the first project. Discuss why you chose your particular user interaction method. You will need to get a screen image for each of the two graph types.

Project Three

2D Interactive Airport

Create an interactive airport in 2D (view should be straight down from the sky). Your project should have the following features (5 points each):

  1. Typical airport objects including two parallel runways with taxiways to each end so airplanes can take off and land in either direction, a hangar with aircraft parking apron connected to the taxiways, a control tower, and a passenger terminal.
  2. Seven airplanes initially parked on the parking apron.
  3. Selection interaction: the user clicks on a parked airplane to select that one for flight.
  4. Position interaction: the user clicks a position on the runway for the start of takeoff and the plane taxis to that position and stops.
  5. Takeoff command: the airplane on the runway begins its takeoff roll and flies away offscreen.
  6. Taxi animation: the airplane moves smoothly on the ground and stays on the taxiway.
  7. Smooth turns: the airplane turns smoothly as it taxis (it can stop and turn on its axis).
  8. Flight animation: the airplane starts slowly and comes up smoothly to flight speed.

Report (10 points): discuss your design decisions and algorithms.

This is an ambitious project, so start early to uncover problem areas.

Here are some student examples:

  1. Applet example.
  2. Applet example.
  3. Applet example.

Project Four

3D Interactive Airport

"Loft" your 2D airport into 3D. Make the viewpoint so it looks as if the user is on a nearby mountain. All the features of project 3 are required plus:

  1. Buildings and airplanes are 3D surface models (10 points).
  2. Interaction is in 3D (10 points).
  3. Airplane circles the airport after takeoff, instead of just flying away (10 points).
  4. Airplanes bank in turns in a physically simulated manner (bank steepness is proportional to the square of the speed and the inverse of the turn radius) (10 points).

Report (10 points): discuss your design decisions and algorithms.

Here are some student examples:

  1. Download a MS Windows program.

Email: Richard dot J dot Wagner at gmail dot com

project.htm, this hand crafted HTML file created September 6, 1998.
Last updated March 14, 2019, by Dr. Rick Wagner.
Copyright © 1998-2019 by Rick Wagner, all rights reserved.