Beispiel: Datenformat von Splines
Die Splinekurve ist ein nichtgleichförmiger, würfelförmiger Spline, der durch eine Reihe dreidimensionaler Punkte, Tangentialvektoren an jedem Punkt und einem Array von nichtnormalisierten Splineparametern an jedem Punkt definiert wird.
Datenformat:
params[]
|
(dbl)
|
Array von Splineparametern (t) an jedem Punkt
|
points[][3]
|
(dbl)
|
Array von interpolaren Splinepunkten
|
tangents[][3]
|
(dbl)
|
Array von Tangentialvektoren an jedem Punkt
|
Parametrisierung:
1. x, y und z sind Reihen eindeutiger würfelförmiger Funktionen, jeweils einer pro Segment, die vollständig durch die Start- und Endpunkte und Tangenten jedes Segments bestimmt werden.
2. p_max sei der Parameter des letzten Splinepunkts. Dann ist t * p_max t', der nicht normalisierte Parameter.
3. Legen Sie das Splinesegment so fest, dass:
par_arr[i] < t' < par_arr[i+1]
(wenn t < 0 or t > +1, verwenden Sie das erste oder letzte Segment).
14.\t0 = (t' - par_arr[i]) / (par_arr[i+1] - par_arr[i])
t1 = (par_arr[i+1] - t') / (par_arr[i+1] - par_arr[i])