StructuredGrid
dataset)
met afmetingen n x n
. class Opdracht4_2 { static double[] lightPosition = {?,?,?}; // position of light source static double[] lightColor = {1,0,0}; // red = color of light source static double[] planeColor = {1,1,1}; // white = color of plane public static void main(String[] argv) { // maak rooster // bereken kleur in ieder roosterpunt // schrijf weg naar vtk file } // bereken diffuse belichting in een punt op positie p met normal n. // Gegeven: een lichtbron op position pL, het object heeft de kleur cO, // de lichtbron heeft de kleur cL. static double[] diffuse( double[] p, // position double[] n, // normal at p double[] pL, // position of light source double[] cO, // color of object double[] cL // color of light source ) { ... } }
SurfaceMap
in het menu [Visualize/modules] van mayavi.
z(x,y) = a * (Math.sin(f*x) + Math.cos(f*y))met
f = 2*Math.PI/n, a = 1/f, n = aantal roosterpunten in bijvoorbeeld x-richting.Bedenk dat om een belichting te kunnen berekenen U een normaalvector nodig heeft in een punt (x,y,z(x,y)) van het oppervlak.
HedgeHog
.
double[] valueToColor(double value) { final double dx=0.8; value = (6-2*dx)*value+dx; double r = Math.max(0.0,(3-Math.abs(value-4)-Math.abs(value-5))/2); double g = Math.max(0.0,(4-Math.abs(value-2)-Math.abs(value-4))/2); double b = Math.max(0.0,(3-Math.abs(value-1)-Math.abs(value-2))/2); return new double[]{r,g,b}; }Deze functie retourneert een array van 3 doubles die staan voor de kleurcomponenten R,G en B gegeven een scalaire waarde
value
. Om de lookup-table in te vullen,
moet je eerst een grootte daarvoor kiezen (bv 256 elementen). Daarna
ga je kleuren bepalen voor 256 scalarwaarden tussen 0 en 1; gebruik hiervoor
Config Scalar Legend
en kies vervolgens
Load Lookup Table
; na selecteren van de gemaakte lut
kun je met het zetten van een vink bij show Legend
de kleurentabel zichtbaar maken.
double min, max
)
van de scalarwaarden in deze dataset. Vervolgens
itereer, in je code van a, van min tot max in plaats van van 0 tot 1.
Pas op de stapgrootte zodat je hetzelfde aantal stappen (256) maakt.
Visualiseer vervolgens de nieuwe dataset met de nieuwe lookup-table.
Visualiseer ook de nieuwe dataset met de oude lookup-table. Waarom
zijn de resultaten anders?