CMP 161 -- Programming Assignment 1
Due date:
Midnight, WED, 1/30/2008
Objectives:
2D multi-variate visualization.
To Do:
-
Write a program that renders multi-variate 2D fields using
pseudo-coloring and contouring.
Your program must be able to visualize at least 2 fields simultaneously.
-
The data sets used in this assignment are extracted from:
http://2006_ieee_vis.sdsc.edu/2006_ieee_vis_data/2008/data.html
.
They are from time step 30 (3805 years into the simulation), and slice z=124.
Each 2D field is 600x248.
There are 10 scalar fields to choose from:
- total particle density (# of particles/cm^3)
- gas temperature (degrees Kelvin)
- H mass abundance
- H+ mass abundance
- He mass abundance
- He+ mass abundance
- He++ mass abundance
- H- mass abundance
- H_2 mass abundance
- H_2+ mass abundance
-
The extracted data sets can be found in 10 separate files
here.
-
Provide an interface that allows users to map different variables
to different visualization technique.
For example, use contouring for He and particle density,
and pseudocoloring for H+.
-
Each pseudo-colored field should have its own instance
of colormap.
The colormap should be displayed as a legend,
and should include min, mid, max values.
Provide a GUI for the user to design their own colormap,
OR provide at least 2 different pre-defined colormaps that they
can choose from.
-
Each contoured field should have a GUI that has a slider
for the user to select a threshold value.
The range on the slider should correspond to the min/max
values of the scalar variable to be contoured.
The user selects the threshold value for contouring by
adjusting the slider.
-
Optional --
allow a second scalar field to specify the color
of the contour lines.
This is basically pseudo-coloring the contour lines.
For example, generate contours of He and color the lines
by He++.
-
Optional --
allow a second scalar field to modify the line thickness
of the contour lines.
For example, generate contours of He and vary the line thickness
by He++.
-
Optional --
allow a second scalar field to modify the transparency
of the contour lines.
For example, generate contours of He and vary the transparency
by He++.
-
Optional --
allow a second scalar field to modify the ``solidness''
of the contour lines.
That is, some parts of the contour lines may be solid
while other parts may be dashed. The degree of solidness
is determined by the second variable.
For example, generate contours of He and vary the line solidness
by He++.
Items To Submit:
-
Html page with description and images of your
project's output.
Make sure your links are all local
and relative to your submit directory.
-
Also make sure you have well documented code, makefile, README file,
user guide, etc.
-
Do NOT include the data files in your submission.
Grading:
This program nominally accounts for 5% of your final grade. We must
be able to compile/test your code. Make sure that code and accompanying
make/project files, etc. must be tested for successful compilation at least on
the PCs in the lab.
Also be sure to
include a README in your submission as to which platform to use.
Programs turned in at least a full day early will earn 1% bonus credit. Late
programs will be charged 1% late points. In addition, late programs will not
be accepted 24 hours past due date. Late programs and reports will not be
accepted for the final project. The bonus credits may be accumulated up to a
total of 50% toward program and final project credits. Programs are graded 80%
for functionality and correctness and 20% for style, readability,
documentation/writeup, and efficiency. Additional points may also be earned
for extra features.
Submission:
Create and submit a subdirectory called "prog1". It should contain
all the files you have to make your program compile/run. Include the other
items to be submitted in this directory as well. Submission must be done using
the submit utility from CATS (e.g. unix.ic.ucsc.edu).
-
To submit use: submit cmps161-ap.w08 prog1 files
-
To verify submission use: peek cmps161-ap.w08 prog1
Last modified
Tuesday, 22-Jan-2019 09:42:15 PST.