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 u∈⟨ul,ul+1⟩ vypočítáme bod na B-spline křivce opakovanou lineární interpolací:

Pij(u)=(1−αij)⋅Pi−1j−1+αij⋅Pij−1,

kde

αij=u−uiui+k−j+1−ui,i=l−k,…,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