Temperaturfarbe: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 21: Zeile 21:
  midcolor3={160,128,10};
  midcolor3={160,128,10};
  endcolor={255,69,0};
  endcolor={255,69,0};
Das führt zu der Temperaturskala [[Datei:Color1Bar.png|thumb|Temperaturskala 1]]
Das führt zu der Temperaturskala
[[Datei:Color1RGB.png|thumb|Projektion der Bézier-Segmente auf die RG / RB / GB - Ebene]]
<gallery mode="packed">
Datei:Color1Bar.png|Temperaturskala 1
Datei:Color1RGB.png|Projektion der Bézier-Segmente auf die RG / RB / GB - Ebene
</gallery>
 


= Version 2 =
= Version 2 =

Version vom 14. Februar 2015, 17:51 Uhr

Achtung, diese Seite behandelt nicht die Farbtemperatur.

Das Ziel dieser Seite ist die Bereitstellung einer Funktion, mit der man eine bestimmte Temperatur in einen Farbwert umwandeln kann. Dazuist die Farbtemperatur eher ungeeignet.

Also bedienen wir uns einer Bézier-Approximation. Dieses in der Computergrafik sehr häufig verwendete Verfahren ist benannt nach Pierre Bézier und diente schon in den 1960er Jahren zum Design von Autokarosserien von Renault. Unsere Skala wird durch drei Temperaturen bestimmt:

  • starttemp ist die untere Skalengrenze, ihr zugeordnet ist eine Wunschfarbe startcolor
  • midtemp2 ist die ideale Temperatur, ihr zugeordnet ist eine Wunschtemperatur midcolor2
  • endtemp ist die obere Skalengrenze, ihr zugeordnet ist eine Wunschfarbe endcolor

Zusätzlich benötigen wir zwei Kontrollpunkte im Farbraum,

  • midcolor1
  • midcolor3

Die Farbskala ergibt sich dann, indem zwei quadratische Bézier-Segmente aneinandergesetzt werden.

  • Im Intervall [starttemp,midtemp2] color(temp) = (1-u)² * startcolor + 2 * u * (1-u) * midcolor1 + u² * midcolor2; dabei ist zu setzen u = (temp-starttemp)/(midtemp2-starttemp)
  • im Intervall [midtemp2,endtemp] color(temp) = (1-u)² * midcolor2 + 2 * u * (1-u) * midcolor3 + u² * endcolor; dabei ist zu setzen u = (temp-midtemp2)/(endtemp-midtemp2)

Version 1

startcolor={0,255,255};
midcolor1={30,80,255};
midcolor2={40,255,60};
midcolor3={160,128,10};
endcolor={255,69,0};

Das führt zu der Temperaturskala


Version 2

startcolor={0,255,255};
midcolor1={120,120,120};
midcolor2={40,255,60};
midcolor3={255,255,0};
endcolor={255,69,0};

Das führt zu der Temperaturskala

Temperaturskala 2
Projektion der Bézier-Segmente auf die RG / RB / GB - Ebene

Version 3

startcolor={0,69,255};
midcolor1={120,180,180};
midcolor2={40,255,60};
midcolor3={255,255,0};
endcolor={255,69,0};

Das führt zu der Temperaturskala

Temperaturskala 3
Projektion der Bézier-Segmente auf die RG / RB / GB - Ebene