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?
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.
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.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