Złożona krzywa Béziera
W geometrycznym i grafice komputerowej krzywa Béziera lub splajn Béziera to splajn utworzony z krzywych Béziera , który jest co najmniej ciągły . Innymi słowy, złożona krzywa Béziera to seria krzywych Béziera połączonych końcami, w których ostatni punkt jednej krzywej pokrywa się z punktem początkowym następnej krzywej. W zależności od zastosowania mogą zostać dodane dodatkowe wymagania dotyczące gładkości takie ciągłość
Ciągły złożony Béziera jest również nazywany polibezierem , przez podobieństwo do polilinii , ale podczas gdy w poliliniach punkty są połączone liniami prostymi, w polilinii punkty są połączone krzywymi Béziera. Beziergon (zwany także bezigonem ) to zamknięta ścieżka złożona z krzywych Béziera . Jest podobny do wielokąta , ponieważ łączy zbiór wierzchołków liniami, ale podczas gdy w wielokątach wierzchołki są połączone liniami prostymi, w beziergonie wierzchołki są połączone krzywymi Béziera. Niektórzy autorzy nazywają nawet krzywą Béziera „krzywą Béziera” ten ostatni termin jest jednak używany przez innych autorów jako synonim (niezłożonej) krzywej Béziera i dodają oni „złożony” przed „krzywą Béziera”, aby określić przypadek złożony.
Być może najczęstszym zastosowaniem złożonego Béziera jest opisanie konturu każdej litery w pliku PostScript lub PDF . Takie kontury składają się z jednego beziergonu dla liter otwartych lub wielu beziergonów dla liter zamkniętych. Nowoczesne systemy grafiki wektorowej i czcionek komputerowych, takie jak PostScript , Asymptote , Metafont , OpenType i SVG , wykorzystują złożone krzywe Béziera złożone z sześciennych krzywych Béziera (krzywe trzeciego rzędu) do rysowania zakrzywionych kształtów.
Płynne łączenie
Powszechnie pożądaną właściwością splajnów jest łączenie ich indywidualnych krzywych z określonym poziomem ciągłości parametrycznej lub geometrycznej . Podczas gdy poszczególne krzywe splajnu są w pełni , zawsze istnieje pewna nieciągłość, gdy spotykają się różne
dość wyjątkowy, ponieważ jest jednym z nielicznych splajnów, które nie gwarantują żadnego wyższego stopnia ciągłości niż . Możliwe jest jednak rozmieszczenie punktów kontrolnych w celu zagwarantowania różnych poziomów ciągłości połączeń, chociaż może to spowodować utratę lokalnej kontroli, jeśli ograniczenie jest zbyt ścisłe dla danego stopnia krzywej Béziera.
Płynne łączenie sześciennych Beziersów
Biorąc pod uwagę dwie sześcienne krzywe Béziera z punktami kontrolnymi, i można zdefiniować ograniczenia zapewniające ciągłość w następująco:
- tym samym punkcie, co z definicji robią wszystkie krzywe Béziera W tym przykładzie wspólny punkt to
- (ciągłość prędkości) wymaga, aby sąsiednie punkty kontrolne wokół połączenia były lustrzanymi odbiciami
- nawzajem. Innymi słowy, muszą przestrzegać ograniczenia
- (ciągłość styczna) wymaga, aby sąsiednie punkty kontrolne były współliniowe z połączeniem. Jest to mniej ścisłe niż dodatkowy stopień swobody, który można sparametryzować za P
Chociaż możliwe są następujące ograniczenia ciągłości, są one rzadko używane z sześciennymi splajnami Béziera, ponieważ inne splajny, takie jak B -splajn lub β-splajn, będą naturalnie obsługiwać wyższe ograniczenia bez utraty lokalnej kontroli.
- (ciągłość przyspieszenia) jest ograniczona przez . Jednak zastosowanie tego wiązania w całym sześciennym splajnie Béziera spowoduje kaskadową utratę lokalnej kontroli nad punktami stycznymi. Krzywa nadal będzie przechodzić przez co trzeci punkt splajnu, ale kontrola nad jej kształtem zostanie utracona. Aby osiągnąć sześciennej jednolitej krzywej B, ponieważ zapewnia ona ciągłość bez utraty do kontrola lokalna, kosztem braku gwarancji przejścia przez określone punkty
- krzywizny) jest ograniczona , pozostawiając dwa stopnie swobody w porównaniu do } postać dwóch skalarów i β . Możliwe są wyższe stopnie ciągłości geometrycznej, chociaż stają się one coraz bardziej złożone
- ograniczona przez . Zastosowanie tego wiązania do sześciennej krzywej Béziera spowoduje całkowitą utratę lokalnej kontroli, ponieważ cały splajn jest teraz w pełni ograniczony i zdefiniowany przez punkty kontrolne pierwszej krzywej. teraz równoważny ekstrapolacji pierwszej krzywej w nieskończoność, co czyni ją nie tylko ciągłą, ale także do , ponieważ połączenia między oddzielnymi krzywymi już nie istnieją
Przybliżone łuki kołowe
W przypadku, gdy prymitywy łuków kołowych nie są obsługiwane w określonym środowisku, można je aproksymować za pomocą krzywych Béziera . Zwykle do przybliżenia koła używa się ośmiu segmentów kwadratowych lub czterech segmentów sześciennych. Pożądane jest znalezienie długości kontrolnych, które dają najmniejszy błąd przybliżenia dla danej liczby segmentów sześciennych
Korzystanie z czterech krzywych
Biorąc pod uwagę tylko 90-stopniowy łuk jednostkowy w pierwszej ćwiartce , definiujemy punkty końcowe za punktów kontrolnych i odpowiednio, jako:
Z definicji sześciennej krzywej Béziera mamy:
Z punktem jako środkiem łuku, możemy napisać następujące dwa równania: do
Rozwiązanie tych równań dla współrzędnej x (i identycznie dla współrzędnej y) daje:
Należy jednak zauważyć, że wynikowa krzywa Béziera jest całkowicie poza okręgiem, z maksymalnym odchyleniem promienia około 0,00027. Dodając niewielką poprawkę do punktów pośrednich, takich jak
wielkość odchylenia promienia do 1 jest zmniejszana o współczynnik około 3, do 0,000068 (kosztem wyprowadzalności przybliżonej krzywej kołowej w punktach końcowych).
Sprawa ogólna
Możemy ułożyć okrąg o promieniu dowolnej liczby sześciennych krzywych Béziera Niech łuk zaczyna się w punkcie kończy w punkcie umieszczonym w równych odległościach powyżej i poniżej osi x, obejmującym łuk o kącie :
Punkty kontrolne można zapisać jako:
Przykłady
Czcionki
TrueType wykorzystują kompozytowe krzywe Béziera złożone z kwadratowych krzywych Béziera (krzywe drugiego rzędu). Aby opisać typowy projekt czcionki jako czcionkę komputerową z dowolną dokładnością, Beziery trzeciego rzędu wymagają mniej danych niż Beziery drugiego rzędu; a te z kolei wymagają mniej danych niż seria linii prostych. Jest to prawdą, mimo że każdy odcinek linii prostej wymaga mniej danych niż dowolny odcinek paraboli; a ten segment paraboliczny z kolei wymaga mniej danych niż jakikolwiek segment krzywej trzeciego rzędu.