Pre zadanych n+1 bodov , kazdy s vahou , mate za ulohu vykreslit racionalnu Bezierovu krivku, ktorej riadiacimi vrcholmi su body kazdy so svojou vahou. Tato krivka ma analyticke vyjadrenie, ktore pouzijete pri vykreslovani:
kde je Bernsteinov polynom.
Pre zadanych n+1 bodov , kazdy s vahou , mate za ulohu vykreslit racionalnu B-splajnovu krivku(NURBS), ktorej riadiacimi vrcholmi su body kazdy so svojou vahou. Zadane je este: stupen d, prir.cislo m=n+d+1, uzlovy vektor
kde:
ak sa v menovateli tychto zlomkov vyskytne nula, cely zlomok sa polozi rovny nule.
V programe je potrebne zadavat uzlovy vektor, defaultne nech je nastaveny na 0,1,2,….,m a je potrebne zadavat aj jednotlive vahy + stupen krivky.
Dalej je potrebne zadavanie (cez tlacitko alebo klavesu) dvoch takych konfiguracii vrcholov, vah a uzloveho vektora, ze vysledna NURBS krivka je kruznica. V oboch pripadoch je stupen krivky rovny 2 (d=2). Spominane konfiguracie su nasledovne:
1. trojuholnikova
Riadiace body su vrcholmi a stredmi stran rovnostranneho trojuholnika.
Vektor vah w=[1,0.5,1,0.5,1,0.5,1]
Uzlovy vektor u=[0,0,0,0.333,0.333,0.666,0.666,1,1,1]
2. stvorcova
Riadiace body su vrcholmi a stredmi stran stvorca.
Vektor vah w=[1,s,1,s,1,s,1,s,1] kde s=sqrt(2)/2
Uzlovy vektor u=[0,0,0,0.25,0.25,0.5,0.5,0.75,0.75,1,1,1]
V ulohe pozadujem zadavanie,odoberanie a posun riadiacich vrcholov mysou.