### Koloroj

1. Pri RVB
2. Konverto el RVB al unupolusa kolorspaco
3. Konverto el RVB al dupolusa kolorspaco

#### Pri RVB

Kartezie RVB prezenteblas per tridiemsia kubo.

Ĉi-suba tabelo prezentas la nomojn kaj la RVB-valorojn de la bazaj koloroj de EGA; iliaj anglaj nomoj estas en pluraj normoj, ekz-e en HTML (http://www.w3.org/TR/WD-html40-970708/types.html#type-color) kaj en Ĝavo (en ties klaso Color).

Verdire, la fakte vidataj koloroj povas tre forte varii sur diversaj ekranoj kun malsamaj kontrasto kaj heldenso.

Nomoj de koloroj kaj iliaj RVB-valoroj
| Esperanto | 16-ume | HTML | Ĝavo | germana | rusa
| nigra | `000000` | black | schwarz | чёрный
| malhele blua | `000080` | navy |  | dunkelblau | тёмно-синий
| blua | `0000FF` | blue | blau | синий
| malhele verda | `008000` | green |  | grün | болотный
| bluverda (turkisa) | `008080` | teal |  | blaugrün | бирюзовый
| verda | `00FF00` | lime | green | hellgrün | зелёный
| cejana | `00FFFF` | aqua | cyan | zyan, Türkis | голубой
| malhele griza | `404040` |  | dark gray | dunkelgrau | тёмно-серый
| ruĝbruna | `800000` | maroon |  | rotbraun | каштановый
| viola | `800080` | purple |  | lila | фиолетовый
| oliva | `808000` | olive |  | oliv | оливковый
| griza | `808080` | gray | grau | серый
| hele griza | `C0C0C0` | silver | light gray | hellgrau | светло-серый
| ruĝa | `FF0000` | red | rot | красный
| hele viola | `FF00FF` | fuchsia | magenta | violett | сиреневый
| oranĝa | `FFC800` |  | orange | orange | оранжевый
| roza | `FFAFAF` |  | pink | rosa | розовый
| flava | `FFFF00` | yellow | gelb | жёлтый
| blanka | `FFFFFF` | white | weiß | белый

#### Konverto el RVB al unupolusa kolorspaco

    KONST nedifinito = -1;

    PROCEDURO unupolusigu(r, g, b : reela; VAR n, s, h : reela);

    {Donite: RVB, ĉiu en [0, 1].
     Dezirate: n en [0, 360] kaj s en [0, 1]; sed se s=0, n=nedifinito.}

       VAR dis, ma, mi: reela;

    STARTO
       ma := maks(r, g, b);
       mi := min(r, g, b);
       h := ma;                                   {la maksimuma subhelo}
       SE ma ≠ 0 TIAM STARTO
          dis := ma - mi;
          s := dis / ma;
          SE r = ma TIAM n := (g - b) / dis;      {inter flava kaj viola}
          ALIE SE v = ma TIAM n := 2 + (b-r)/dis; {inter lazuro kaj flavo}
          ALIE SE b = ma TIAM n := 4 + (r-v)/dis; {inter viola kaj lazura}
          n := n*60.0;                            {konvertu al gradoj}
          SE n < 0.0 TIAM n := n + 360.0;        {gradoj estu nenegativaj}
       FINO ALIE STARTO
           s := 0.0;
           n := nedifinito;
       FINO;
    FINO {unupolusigu}

#### Konverto el RVB al dupolusa kolorspaco

    PROCEDURO dupolusigu(r, g, b : reela; VAR n, l, s : reela);

    {Donite: rvb, ĉiuj en [0, 1].
     Dezirate: n en [0, 360] kaj s en [0, 1]; sed se s=0, n=nedifinito.}

       VAR dis, ma, mi: reela;

    STARTO
        ma := maks(r, v, b);
        mi := min(r, v, b);
        l  := (ma + mi) / 2;    {ĉi tio estas la averaĝa helo}

        SE ma = mi TIAM STARTO  {grize:}
                s := 0.0;
                n := nedifinito;
        FINO ALIE STARTO     {kolore:}

           SE l ≤ 0.5 TIAM s := (ma - mi) / (ma + mi);
           ALIE s := (ma - mi) / (2 - ma - mi);

           dis := ma - mi;
           SE r = ma TIAM n := (v - b) / dis;    {inter flava kaj viola}
           ALIE SE g = ma TIAM n := 2+(b-r)/dis; {inter cejana kaj flava}
           ALIE SE b = ma TIAM n := 4+(r-v)/dis; {inter viola kaj cejana}
           n := n * 60.0;                        {konvertu en gradojn}
           SE n < 0.0 TIAM n := n+360.0;         {gradoj estu nenegativaj}
        FINO {kolore}
    FINO {dupolusigu}