Geometrie/Algoritmus de Boor

Z testwiki
Skočit na navigaci Skočit na vyhledávání

De Boor algoritmus

De Boor algoritmus pro výpočet bodu B-spline křivky je zobecněním [[../Algoritmus de Casteljau|algoritmu de Casteljau]] pro [[../Bézierova křivka|Bézierovy křivky]]. Pro uul,ul+1 vypočítáme bod na B-spline křivce opakovanou lineární interpolací:

Pij(u)=(1αij)Pi1j1+αijPij1,

kde

αij=uuiui+kj+1ui,i=lk,,l a Pi0=Pi.

Bod Plk=P(u) je hledaný bod na B-spline křivce.

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

Šablona:Kód

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

Šablona:Kód