HSV Farbraum

Gast #2900988
Lesenswert?
• ▲
▼
so ist das bei mir


1
//Rot OK
2
hsv_to_rgb (0,1,1);
3

4
//Grün OK
5
hsv_to_rgb (120,1,1);
6

7
//Weiß bleibt dunkel
8
hsv_to_rgb (0,0,1);
9

10

11
void hsv_to_rgb (float h,float s,float v)
12

13
{
14

15
 float r,g,b;      
16

17
 int i;
18
 float f, p, q, t;
19

20
 if( s == 0 ) 
21
   {
22
  r = g = b = v;
23
  return;
24
  }
25

26
 h /= 60;        // sector 0 to 5
27
 i = floor( h );
28
 f = h - i;      
29
 p = v * ( 1 - s );
30
 q = v * ( 1 - s * f );
31
 t = v * ( 1 - s * ( 1 - f ) );
32

33
 switch( i )
34
      {
35
    case 0:
36
      r = v; g = t; b = p; break;
37
    
38
    case 1:
39
      r = q; g = v; b = p; break;
40
      
41
    case 2:
42
      r = p; g = v; b = t; break;
43
        
44
    case 3:
45
      r = p; g = q; b = v; break;      
46
        
47
    case 4:
48
      r = t; g = p; b = v; break;
49
                
50
    default:                
51
      r = v; g = p; b = q; break;        // case 5:          
52
    }
53

54
 
55
 int rc=r*255;   // Auf 8 Bit RGB skalieren, nacher nur noch kopieren
56
 int gc=g*255;
57
 int bc=b*255;    
58
    
59
  OCR1AL=rc;
60
  OCR1BL=gc;
61
  OCR2=bc;
62
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.