Geometrie/Racionální algoritmus de Boor
De Boor algoritmus
Bod na [[../Racionální B–spline křivka|racionální B-spline křivce]] můžeme stejně jako u racionálních Bézierových křivek spočítat hned dvěma způsoby.
1. Pomocí algoritmu de Boor pro racionální křivky:
Zvolíme-li , pak bod na racionální B-spline křivce vypočteme opakovanou lineární interpolací:
- ,
kde
a
- , a .
Bod je hledaný bod racionální B-spline křivky.
Toto rozšíření algoritmu de Boor vzniklo obdobným způsobem jako rozšíření algoritmu de Casteljau pro Bézierovy křivky.
2. Převodem na neracionální křivku a zpětným promítnutím:
Převedeme racionální B-spline na neracionální (o jednu dimenzi výše), provedeme de Boor algoritmus pro neracionální křivku a výsledný bod převedeme (promítneme) zpět.
Algoritmizace
ComputeKnotVector(int n, int k)
Spočítá uzlový vektor.
Parametry:
- n - počet kontrolních bodů mínus 1
- k - stupeň de Boor bázové funkce
Vector GetPoint(double t)
Přetížená metoda třídy Curve. Spočítá a vrátí bod na křivce.
Parametry:
- t - parametr výpočtu