Jak działa splajn dośrodkowy Catmull-Rom?

From this site , which seems to have the most detailed information about Catmull-Rom splines, it seems that four points are needed to create the spline. Nie wspomina jednak, w jaki sposób punkty p0 i p3 wpływają na wartości pomiędzy p1 i p2.

Kolejne pytanie, jakie mam, to jak stworzyłbyś ciągłe sploty? Czy byłoby to tak proste, jak zdefiniowanie punktów P1, p2 jako ciągłych z p4, P5 przez utworzenie p4 = p2 (czyli zakładając, że mamy p0, p1, p2, p3, p4, p5, p6,.., pN).

Bardziej ogólne Pytanie brzmi, jak można obliczyć tangens na splajnach Catmull-Rom? Czy musiałoby to wiązać się z wzięciem dwóch punktów na splajnie (powiedzmy 0,01, 0,011) i uzyskaniem stycznej na podstawie Pitagorasa, biorąc pod uwagę współrzędne położenia, jakie dają te wartości wejściowe?

Author: nbro, 2009-07-06

2 answers

Spójrz na równanie 2 -- opisuje, jak punkty kontrolne wpływają na linię. Możesz zobaczyć punkty P0 i P3 w równaniu do kreślenia punktów wzdłuż krzywej od P1 do P2. Zobaczysz również, że równanie daje P1 Kiedy t == 0 I P2 Kiedy t == 1.

To przykładowe równanie można uogólnić. Jeśli masz punkty R0, R1, ... RN Następnie można wykreślić punkty pomiędzy RK i RK + 1 używając równania 2 z P0 = RK - 1, P1 = RK, P2 = RK + 1 oraz P3 = RK + 2.

Nie możesz rysować od R0 do R1 lub od RN - 1 do RN, chyba że dodasz dodatkowe punkty kontrolne, aby stanąć na R - 1 i RN + 1. Ogólna idea jest taka, że możesz wybrać dowolne punkty, które chcesz dodać do głowy i ogona sekwencji, aby dać sobie wszystkie parametry do obliczenia splajnu.

Możesz połączyć ze sobą dwie linie, upuszczając jeden z punktów kontrolnych między nimi. Powiedz, że masz R0, R1, ..., RN oraz S0, S1, ... SM mogą być dołączył do R0, R1, ..., RN - 1, S1, S2, ... SM.

Aby obliczyć styczną w dowolnym punkcie, wystarczy wziąć pochodną równania 2.

 10
Author: George Phillips,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 12:34:18

Artykuł w Wikipedii sięga nieco głębiej. Ogólna postać splajnu przyjmuje jako wejście 2 punkty kontrolne z powiązanymi wektorami stycznymi. Dodatkowe segmenty splajnu mogą być dodawane pod warunkiem, że wektory styczne w wspólnych punktach kontrolnych są równe, co zachowuje ciągłość C1.

W specyficznej postaci Catmull-Rom, wektor styczny w punktach pośrednich jest określony przez lokalizacje sąsiednich punktów kontrolnych. Tak więc, aby stworzyć C1 ciągły splajn przez wiele punktów, wystarczy dostarczyć zestaw punktów kontrolnych i wektorów stycznych w pierwszym i ostatnim punkcie kontrolnym. Standardowym zachowaniem jest użycie P1 - P0 dla wektora stycznego przy P0 i PN-PN-1 przy PN.

Zgodnie z artykułem Wikipedii, aby obliczyć styczną w punkcie kontrolnym Pn, używasz tego równania:

T(n) = (P(n - 1) + P(n + 1)) / 2
To również odpowiada na twoje pierwsze pytanie. Dla zestawu 4 punktów kontrolnych, P1, P2, P3, P4, wartości interpolacyjne pomiędzy P2 i P3 wymaga informacji ze wszystkich 4 punktów kontrolnych. P2 i P3 same określają punkty końcowe, przez które musi przejść segment interpolacyjny. P1 i P3 wyznaczają wektor styczny segmentu interpolującego w punkcie P2. P4 i P2 wyznaczają wektor styczny segmentu w punkcie P3. Wektory styczne w punktach kontrolnych P2 i P3 wpływają na kształt odcinka interpolującego między nimi.
 6
Author: Eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-06 08:15:19