úloha 033: Výpočet pěkné barevné palety

Úkolem je navrhnout automatický výpočet pěkné sady barev např. pro webový design. Vstupem jsou uživatelem zadané základní barvy, mohou být 1 až 2. Výstupem je množina 3 až 9 barev, které jsou odvozeny z těch základních (ale ne nutně musí základní barvy obsahovat). Měli byste použít barevný systém HSV (v něm se snadno definují barvy doplňkové, příbuzné, ..).

Základ

Základem poslouží projekt 033colormap z repository grcis. Je připravena jednoduchá aplikace, ve které uživatel zadává vstupní parametry a ihned se automaticky spouští metoda Colormap.Generate() přepočítávající barevnou paletu. Tuto metodu musíte přeprogramovat, příslušný úsek kódu je ve zdrojáku Colormap.cs označen závorkami:

  // !!!{{
  // !!!}}

Screenshot

Technicky

Vstupní (základní) barvy jsou uložené v parametrech baseColor1 a baseColor2. Počet barev zadávaný uživatelem najdete v parametru numCol (nemusíte ho používat, můžete udělat paletu pevné délky). Volitelně můžete číst další informace z řetězce param (v takovém případě si budete muset sami zadefinovat, co a v jakém formátu má smí obsahovat - pilotní implementace obsahuje ukázku čtení jednoho float čísla).
Výstupní barevná paleta se píše do pole colors, pole musíte sami alokovat pro správnou velikost, např. colors = new Color[ 4 ]; pro čtyři barvy..

Pro pohodlné ladění i pro odevzdání nějaké pěkné odladěné palety prosím modifikujte inicializační proceduru InitPaletteData(). Ta se zavolá vždy na začátku při inicializaci formuláře.

Jako řešení úlohy posílejte mailem pouze modifikovaný zdrojový soubor Colormap.cs! Nepřijímám celé Visual Studio projekty!
Na první řádce v komentáři napište své jméno.

Barevný systém HSV

Pro převod z RGB do HSV a zpět můžete použít knihovní funkce Arith.ColorToHSV() resp. Arith.HSVToColor(). HSV systém používá čísla v plovoucí řádové čárce (float), vestavěný typ Color má jako barevné komponenty celá čísla v rozsahu 0 až 255.

Inspirace

Různé online stránky pro generování web-palet, např. moc pěkný Adobe Color CC (nastavit si "Compound"), apod.

Co odevzdat

Musíte poslat zdrojový soubor Colormap.cs.
Na první řádce v komentáři napište své jméno.
Do procedury InitPaletteData() napište nějaké pěkné zadání, které se vám povedlo.
Pokud použijete stringový parametr param, nezapomeňte popsat jeho formát a sémantiku.

Termín

Odevzdat do: 8. 11. 2015

Body

Maximálně 9 bodů

Projekt

Visual Studio projekt: 033colormap.

Zdrojový soubor

Modifikujte a odevzdejte soubor: Colormap.cs
Do komentáře na první řádce napište své jméno!


Copyright (C) 2010-2015 J.Pelikán, last change: 2019-05-09 17:52:59 +0200 (Thu, 09 May 2019)