Za ulohu bude potrebne implementovat dve krivky, obe po castiach zlozene z Bezierovych kriviek stupna 3, pricom v bodoch nadvezovania je krivka C1 resp. C2 spojita.

 

  1. C1 spojita ciastkova Bez. krivka je zadana n+1 bodmi Vi, i=0,…,n, ktore tato krivka interpoluje. Pre kazdy dany bod Vi je este zadana “riadiaca” usecka AiBi tak, ze Vi je  vzdy stred tejto usecky. V implementacii sa musi dat menit poloha riadiacich vrcholov Vi a pre vybrany vrchol Vi sa musi dat menit aj riadiaca usecka AiBi. Potom vrcholy ViBiAi+1Vi+1 tvoria riadiaci polygon jedneho segmentu (casti) celej krivky. Ked sa vykreslia vsetky segmenty (pouzite algoritmus dany nizsie) pre i=0,…,n-1, dostaneme hladanu krivku. Pri pridani riadiaceho vrchola Vi nech usecka AiBi ma nejaku dlzku a nahodny smer.

 

  1. C2 spojita ciastkova Bez. krivka je zadana n+1 bodmi Vi, i=0,…,n, pricom tato krivka interpoluje 0,3,4,…n – ty riadiaci bod. Tato krivka sa opat sklada zo segmentov, ktore su Bezierovymi krivkami stupna 3. Prvy segment je urceny bodmi V0,…,V3, kazdy dalsi segment je zadany vrcholmi Vi, Ai, Bi, Vi+1, i=3,…,n-1. Body Ai, Bi sa vypocitaju z riadiacich bodov predchadzajuceho segmentu na zaklade C2 spojitosti. Plati Ai = 2*Vi-Bi-1 a Bi=4*Vi-4*Bi-1+Ai-1, pre i=3,…,n-1.

 

Na vykreslenie jednotlivych segmentov krivky (t.j. kubickych Beziertovych kriviek) sa pouzije nasledovny optimalizovany algoritmus. Opat sa jedna o aproximaciu krivky pomocou lomenej ciary, body tejto lomenej ciary sa vypocitavaju postupne z predchadzajuceho vypoctu. Na zaciatku su dane riadice body V0, V1, V2, V3 a cislo m, ktore predstavuje pocet reprezentatntov def. oboru, t.j. presnost aproximacie. Potom algoritmus na vypocet je nasledovny:

 

 

Potom A1,A2,…,Am je hladana aproximacia Bezierovej krivky. Vsetky pomocne premenne (f, fd, fdd, …) maju tri zlozky (suradnice).

Znovu je potrebne implementovat aj zakladne modelovacie nastroje (zmazanie, pridanie bodu, posun riadiacich bodov, zmena m).