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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren