Forum: Mikrocontroller und Digitale Elektronik HSV- Farbraum in RGB


von Marcel K. (viewer)


Lesenswert?

Hallo Forum,
ich bin kein Profi in Matrix-rechnen. Ich habe den ganzen Tag versucht, 
eine Transformation von HSV in RGB zu machen. Dazu habe ich das Beispiel 
von:
Beitrag "Re: HSV RGB Led Dimmer, C Code & Video & Doku"
verwendet. Jetzt ist im Beispiel von Benedikt K. alles auf „char“- Werte 
reduziert. Das ist zwar nicht schlecht aber ich bin dabei das ganze so 
umzuschreiben, dass ich als „hue“- Wert ein „int“- Wert (0°-360°)habe 
und die restlichen bleiben „char“- Werte. Aber ich bekomme das irgendwie 
nicht hin.
Ich versuche den Code nachzuvollziehen aber ich verstehe das Ganze nicht 
wirklich. Also in Wikipedia ist zwar die Formel für die Umrechnung zu 
finden aber die bezieht sich auf „S“ und „V“ Werte von 0-1. Ich möchte 
allerdings Werte von 0-100% verwenden.
Im Code:

http://www.mikrocontroller.net/attachment/highlight/18560

wird mit 10710 gerechnet. Was bedeutet den dieser Wert?
Wie errechnet man den die Matrix auf Basis von Benedikt K.?
Ich habe das ganze schon so probiert, aber das klappt auch nicht.

i=h/61;
f=h-i;
p = (v * (255 - s))/256;
q = (v * ((10710 - (s * f))/60))/256;
t = (v * ((10710 - (s * (42 - f)))/60))/256;

Grüße,
Marcel

von Jack der Erste (Gast)


Lesenswert?

Echt?

Na wenn du x Grad in "1 Byte" umrechnen willst mach doch einfach so:

x * 255 / 360

Und wenn in Wikipedia steht 0 - 1 dann multiplizier mit 100.

von Tony R. (tony)


Lesenswert?


von Jack der Erste (Gast)


Lesenswert?

So mathematisch ausgedrückt sieht das ganz schön kompliziert aus auf 
Wikipedia, aber eigentlich reicht es doch diese Grafik im Kopf zu haben 
um das zu implementieren. Ist ja kein Hexenwerk.

http://de.wikipedia.org/w/index.php?title=Datei:HSV-RGB-comparison.svg&filetimestamp=20060830160028

von A.R. (Gast)


Lesenswert?

Das ist Lernziel der 7. Realschulklasse.
Was macht ihr bloß, wenn es über simplen Dreisatz hinausgeht?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.