diff options
author | Constantin Riß <constantin.riss@dre.de> | 2010-02-07 22:20:40 +0100 |
---|---|---|
committer | Constantin Riß <constantin.riss@dre.de> | 2010-02-07 22:20:40 +0100 |
commit | 3b4db495c6fe7452fddc096d3085e44470830694 (patch) | |
tree | 9511d4fb43621d1e52e2d9a8dfc8b36a21361140 /Temparray.cpp | |
parent | f53113f02ea5369e50bd33232db3d2b48f64cc1c (diff) | |
download | c3d-3b4db495c6fe7452fddc096d3085e44470830694.tar c3d-3b4db495c6fe7452fddc096d3085e44470830694.zip |
Temperaturverlauf in farbe
Diffstat (limited to 'Temparray.cpp')
-rw-r--r-- | Temparray.cpp | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/Temparray.cpp b/Temparray.cpp index 0686ef0..ae75583 100644 --- a/Temparray.cpp +++ b/Temparray.cpp @@ -481,25 +481,53 @@ std::list<Triangle> Temparray::getTriangles(){ void Temparray::coloring() { calcAverage(); - float r[4], g[4], b[4]; + float r[4], g[4], b[4], percent, factor; for(int i=0; i<sx; ++i){ for(int j=0; j<sy; ++j){ for(int k=0; k<sz; ++k){ for(int l=0; l<6; ++l){ for(int m=0; m<4; ++m){ - //if(temperaturenew(i, j, k, l, m) <= averagetemp/2) b[m] = 1; - //else if(temperaturenew(i, j, k, l, m) < averagetemp) - b[m] = 1;//1/(averagetemp/2+temperaturenew(i, j, k, l, m)); + percent = temperatureold(i, j, k, l, m)/100; + + if (percent < 0.5){ + r[m] = 0; + g[m] = percent*2; + b[m] = 1-percent*2; - g[m]=1; + if(g[m] > b[m]){ + factor = 1 + (1-g[m]) / g[m]; + } + else { + factor = 1 + (1-b[m]) / b[m]; + } + g[m] *= factor; + b[m] *= factor; + } + else if (percent == 0.5) { + r[m] = 0; + g[m] = 1; + b[m] = 0; + } + else if (percent > 0.5) { + r[m] = (percent-0.5)*2; + g[m] = 1-(percent-0.5)*2; + b[m] = 0; + + if(r[m] > g[m]){ + factor = 1 + (1-r[m]) / r[m]; + } + else { + factor = 1 + (1-g[m]) / g[m]; + } + r[m] *= factor; + g[m] *= factor; + } - //if(temperaturenew(i, j, k, l, m) >= 100-averagetemp/2) r[m] = 1; -// r[m]=0; + cubehole(i, j, k, l).setColor(vmml::vec4f(r[0], g[0], b[0], 1.0), + vmml::vec4f(r[1], g[1], b[1], 1.0), + vmml::vec4f(r[2], g[2], b[2], 1.0), + vmml::vec4f(r[3], g[3], b[3], 1.0)); } - cubehole(i, j, k, l).setColor(vmml::vec4f(r[0], g[0], b[0], 1.0), - vmml::vec4f(r[1], g[1], b[1], 1.0), - vmml::vec4f(r[2], g[2], b[2], 1.0), - vmml::vec4f(r[3], g[3], b[3], 1.0)); } } } |