12 Krzywe Béziera
Krzywe BézieraTen rozdział będzie zawierał trochę trudniejszy materiał, mam jednak nadzieję, że zapoznasz się z nim w całości. Uważam jednak, iż omówienie rysowania krzywych w reprezentacji Béziera pozwoli na dokładniejsze zrozumienie w jaki sposób są rysowane obiekty w programie, a i pełne pojęcie kolejnych rozdziałów. Aby się nie powtarzać proszę jedynie o dokładne zapoznanie się z rozdziałem "Rysunek rastrowy a wektorowy".
Opis krzywych Béziera
Pierre Bézier to francuski matematyk, pracownik firmy Renault. W ramach prac projektowych nad nowymi karoseriami samochodowymi opracował model opisu krzywych.
A teraz odrobina matematyki. Krzywe Béziera są parametrycznymi krzywymi trzeciego stopnia i znajdują szerokie zastosowanie w modelowaniu kształtu figur i powierzchni. Przykładem może tu być modelowanie kształtu nadwozi samochodów. Są one podstawą działania wszystkich poważniejszych programów do tworzenia i edycji rysunków wektorowych (Corel DRAW, Adobe Ilustrator).
Kształt krzywej Béziera jest określony czterema punktami: dwoma punktami krańcowymi krzywej (tzw. węzłami) (P1, P4) oraz dwoma punktami kontrolnymi (P2, P3). Krzywa interpoluje dwa krańcowe punkty krzywej i aproksymuje dwa punkty kontrolne.
Jeżeli oznaczymy współrzędne tych czterech punktów jako:
P1 (x1 , y1), P2 (x2 ,y2), P3 (x3 ,y3), P4 (x4 ,y4)
to kształt krzywej Béziera określają dwa równania parametryczne:
x(t) = (1- t)3 x1 + 3t (1- t)2 x2 + 3t2 (1- t) x3 + t3 x4
y(t) = (1- t)3 y1 + 3t (1- t)2 y2 + 3t2 (1- t) y3 + t3 y4
gdzie parametr t przybiera wartości z przedziału 0 ≥ t ≥ 1
Węzły i punkty kontrolne
W programie CorelDRAW każdą krzywą (krzywą jest także okrąg, kwadrat, itp.) definiuje się jak już opisałem, podając węzły i punkty kontrolne. Istnieje także pojęcie segmentu w skład którego wchodzą dwa węzły (na jego końcach) i dwa punkty kontrolne. Ponieważ segmenty sąsiadują ze sobą, dlatego z każdym węzłem związane są tylko dwa punkty kontrolne.
Na krzywej możemy wykonać następujące czynności:
- przesunąć węzeł - zmianie ulegnie wygląd jednego lub dwóch segmentów (gdy węzeł należał do dwóch segmentów),
- przesunąć punkt kontrolny - zmieni się kształt jednego segmentu,
- dodać węzeł - jeden segment zostanie podzielony na dwa segmentu, pomiędzy którymi znajdzie się dodany węzeł,
- usunąć węzeł - zostaną usunięte także dwa punkty kontrolne, a dwa sąsiednie segmenty zostaną połączone w jeden segment, którego kształt będą określały pozostałe-sąsiednie punkty kontrolne,
- połączyć dwa końcowe węzły - powstanie jeden węzeł z punktami kontrolnymi tak ustawionymi, aby przejście krzywej przez ten węzeł było "gładkie",
- przekształcić segment na prostą, krzywą, itp. - powoduje to automatyczne ustawienie punktów kontrolnych w ten sposób, aby uzyskać żądany kształt.
Co to oznacza w praktyce? Otóż:
- jeżeli chcesz uzyskać linię prostą to musisz tak ułożyć punkty kontrolne, aby leżały na linii łączącej oba węzły;
- gdy przesuniesz jeden z punktów kontrolnych tak, aby nie leżał na prostej łączącej dwa węzły, to wtedy segment "wybrzuszy" się w taki sposób, by w węźle segment był styczny do linii łączącej węzeł z punktem kontrolnym;
- gdy oddalisz punkt kontrolny od węzła, to krzywa będzie "łagodniej" przechodzić przez węzeł.
Możemy też wyróżnić trzy charakterystyczne sposoby łączenia segmentów krzywej:
- punkty kontrolne należące do węzła są symetryczne - otrzymujemy wtedy gładkie przejście krzywej przez węzeł;
- punkty kontrolne należące do węzła są współliniowe i niesymetryczne - krzywa dalej przechodzi gładko przez węzeł, ale po obu stronach węzła otrzymujemy inny przebieg "wybrzuszeń" krzywej;
- punkty kontrolne nie są współliniowe - przejście krzywej przez węzeł nie jest gładkie, ponieważ sąsiednie segmenty będą styczne do różnych prostych.