Cvičenie 5

Príklad 1
Napíšte program, ktorý zobrazí Fergusonovu kubiku danú bodmi P0=(100,100), P1=(200,200) a dotyčnicami p0’=(300,-200), p1’=(400,-400). Parametrické vyjadrenie tejto kubiky si vypočítajte sami a výsledný vzťah implementujte. Výsledok by mal vyzerať takto:

Príklad 2
Napíšte program, ktorý vám bude umožňovať zadávať riadiace body pre krivku kliknutím do okna. Po kliknutí sa na obrazovke objaví malá značka (elipsa, obdĺžnik, krížik..) označujúca zadaný bod. 

Kliknutie na komponent spracúva metóda Click. 
Aktuálna poloha myši je uložená v údaji MousePosition príslušného komponentu. Tento údaj udáva ale súradnice vzhľadom na celú obrazovku. Ak ich chceme previesť na súradnice vzhľadom na daný komponent, musíme použiť metódu komponentu PointToClient, ktorej parametrom aj návratovou hodnotou je štruktúra typu Point. 
Ak teda chceme napr. uložiť bod komponentu pictureBox1, na ktorý užívateľ klikol, urobíme to takto:
Point P=pictureBox1->PointToClient(pictureBox1->MousePosition);

Zadajte takto kliknutím niekoľko bodov, uložte ich do nejakého poľa a potom vykreslite lomenú čiaru tak, že pospájate úsečkami za sebou idúce body.

Príklad 3
Napíšte program, ktorý vykreslí Bézierovu krivku pomocou Casteljauovho algoritmu. Riadiace body zadajte klikaním do okna.

Príklad 4
Napíšte program, ktorý vykreslí Coonsov kubický b-spline. Riadiace body zadajte klikaním do okna. Pokúste sa vykresliť aj taký spline, ktorý prechádza prvým a posledným zadaným bodom.

Príklad 5
Napíšte program, ktorý vykreslí prirodzený kubický spline. Riadiace body sa zadajú klikaním do okna. Trojdiagonálny systém riešte Gaussovou elimináciou.