I colori

Nel sistema di colore RGB un colore si specifica come terna RGB (red, green, blue) con la quale si specifica quanto sono accesi i punti colorati corrispondenti dello schermo

  1. Il nero corrisponde a tutto spento (0, 0, 0)
  2. Il colore bianco corrisponde alla massima intensità per i tre colori fondamentali (1, 1, 1)
  3. Il colore rosso più acceso si ottiene con (1, 0, 0), che significa tutto rosso e niente verde e blu.
  4. Per creare qualsiasi sfumatura di colore si possono scegliere 3 valori a piacere per i 3 colori.
  5. Per alcuni colori esiste una costante predefinita
COSTANTEValore RGBGrigio?
color.blackvector(0, 0, 0)color.gray(0)
color.bluevector(0, 0, 1)
color.cyanvector(0, 1, 1)
color.greenvector(0, 1, 0)
color.magentavector(1, 0, 1)
color.orangevector(1, 0.5, 0)
color.purplevector(0.4, 0.2, 0.6)
color.redvector(1, 0, 0)
color.whitevector(1, 1, 1)color.gray(1)
color.yellowvector(1, 1, 0)


Grigio

Le sfumature di grigio hanno una definizione specifica con un valore da 0.0 a 1.0.

  • color.gray(0.1)
  • color.gray(0.2)

Le seguenti definizioni di grigio sono equivalenti

c1 = vector(0.5, 0.5, 0.5)
c2 = color.gray(0.5)
c3 = color.white * 0.5

Le sfumature di grigio, da bianco a nero, si ottengono con tre valori RGB uguali.


HSV

Il sistema di colore HSV (hue, saturation, brightness) non è disponibile ma ci sono 2 funzioni per passare dal sistema RGB a HSV e viceversa

  • c2 = color.rgb_to_hsv(c1)
  • c1 = color.hsv_to_rgb(c2)

Esempi

c  = vector(1, 1, 0)      # color.yellow
c2 = color.rgb_to_hsv(c)  # Da RGB a HSV
print(c2)                 # vector(0.16667, 1, 1)
 
c3 = color.hsv_to_rgb(c2) # Da HSV a RGB
print(c3)                 # vector(1, 1, 0) 
 
sphere(color = color.hsv_to_rgb(vector (0.5, 1, 0.8), radius = 2.0)

Il programma dimostrativo Color-RGB-HSV-VPython permette di agire su dei cursori per i valori di R, G, B, H, S, V e ottenere il colore desiderato e il codice corrispondente da copiare.