Strona głównaArtykułyMatematyka

Krzywe Bézier: Matematyka stojąca za każdym gładkim linią

Geometryczna konstrukcja de Casteljau, wielomiany Bernsteina i dlaczego cztery punkty kontrolne stały się standardem dla czcionek, CAD i animacji.

mysimulator teamZaktualizowano — czerwiec 2026≈ 9 min czytania▶ Otwórz symulację

Krzywa zbudowana z parametru, a nie funkcji

Zwykła funkcja y = f(x) nie może opisać pętli ani zamkniętego kształtu – zawodzi w teście poziomej linii. Krzywa parametryczna omija ten problem, wyrażając zarówno x jak i y jako funkcje niezależnego parametru t przebiegającego od 0 do 1: P(t) = (x(t), y(t)). Wtedy t = 0 krzywa się zaczyna, a wtedy t = 1 kończy, a wartości pomiędzy ciągłym ścieżką rysują. Wynalezione niezależnie w latach 60. przez Paula de Casteljaua w Citroën i Pierre Béziera w Renault – oboje starali się matematycznie opisać elementy karoserii samochodowych – krzywa Bézier stała się standardowym sposobem, aby kilka intuicyjnych punktów kontrolnych definiowało gładki kształt.

demo na żywo · powiązana symulacja● LIVE

Algorytm De Casteljau

De Casteljau znalazł czysto geometryczną metodę na ocenienie krzywej bez jakiejkolwiek jawnej wielomianu. Przy danym zestawie punktów kontrolnych P₀…Pₙ, powtarzalnie interpoluj każdą sąsiednią parę wzdłuż parametru t aż do uzyskania pojedynczego punktu — ten punkt leży na krzywej. Dla krzywej trzeciego stopnia (cztery punkty kontrolne) zajmuje to trzy poziomy interpolacji:

Poziom 1: Q0=(1-t)P0+tP1 Q1=(1-t)P1+tP2 Q2=(1-t)P2+tP3 Poziom 2: R0=(1-t)Q0+tQ1 R1=(1-t)Q1+tQ2 Poziom 3: B(t)=(1-t)R0+tR1 Ponieważ wykorzystuje tylko interpolacje liniowe, algorytm jest numerycznie stabilny nawet dla krzywych o wysokim stopniu, w przeciwieństwie do bezpośredniej wartości wielomianu, która cierpi na błędy z powodu odwołania się do wartości przy wzroście stopnia. Ponadto daje on podział bezpłatnie: ocena w t = 0,5 dzieli krzywą na dwie krzywe o połowie długości, ponownie wykorzystując punkty pośrednie, co jest dokładnie tym, jak renderery wypacniają krzywe na segmenty liniowe — dzielone do momentu, gdy segment znajduje się w odległości jednego piksela od swojego ciągu, wtedy zatrzymujemy.

Level 1:  Q0=(1-t)P0+tP1   Q1=(1-t)P1+tP2   Q2=(1-t)P2+tP3
Level 2:  R0=(1-t)Q0+tQ1   R1=(1-t)Q1+tQ2
Level 3:  B(t)=(1-t)R0+tR1

Polinomy Bernsteina i wzór jawny

Ta sama krzywa może być zapisana jako ważona suma punktów kontrolnych za pomocą wielomianów Bernsteina: B(t) = Σ C(n,i)·tⁱ·(1−t)ⁿ⁻ⁱ·Pᵢ. Te wagi sumują się do 1 dla każdego t (podział na części), więc krzywa jest zawsze kombinacją wypukłą punktów kontrolnych i dlatego leży całkowicie wewnątrz ich wypukłej obłuki – właściwość, której wykorzystują renderery do szybkich testów odrzucania pudełka ograniczenia. Krzywa również przechodzi dokładnie przez P₀ i Pₙ, a odwrócenie t śledzi tę samą formę wstecz.

Dlaczego krzywe kubiczne są głównym narzędziem?

Cubic Bézier – dokładnie cztery punkty kontrolne – są używane niemal wszędzie: polecenie C w SVG, kontury znaków TrueType/OpenType w PostScriptie, ścieżki PDF i funkcja CSS cubic-bezier() również opierają się na nich. Tangencję na każdym końcu ustala sąsiednie uchwyt: B'(0) = 3(P₁−P₀) i B'(1) = 3(P₃−P₂), więc projektanci przeciągają P₁ i P₂ aby sterować kierunkiem wejścia i wyjścia krzywej. W cubic-bezier(0.25, 0.1, 0.25, 1.0), punkty końcowe (0,0) i (1,1) są ustalone, oś x jest znormalizowanym czasem a oś y jest postępem animacji — kształt krzywej jest funkcją ułatwienia.

Splines: joining segments smoothly

A single high-degree Bézier curve is unwieldy — moving one control point reshapes the whole curve. The fix is to chain several cubic segments into a spline, enforcing continuity at each join: C⁰ means the segments merely share an endpoint (a possible corner); C¹ means tangent direction and speed match (no kink), achieved by keeping the handles either side of the join collinear and equidistant; C² also matches curvature, which is what makes a reflection on a car body or a font outline look genuinely smooth rather than merely connected.

B-splines generalise this further by distributing control points over a knot vector via the Cox–de Boor recursion, and NURBS add a weight to each point so that circles and ellipses — impossible for a plain polynomial Bézier curve — become exactly representable. NURBS are the geometry standard behind CAD exchange formats such as STEP and IGES.

Gdzie matematyka jest faktycznie wykorzystywana

TrueType fonts store glyph outlines as quadratic Béziers; PostScript and OpenType use cubics — a single letter can involve 10-30 segments, rasterised at sub-pixel resolution every time text is drawn on screen. Animation software stores keyframe motion as cubic splines in time, with the handles producing slow-in/slow-out easing; game engines use the equivalent Hermite form for camera paths and character motion along rails. In CAD, automotive panels and turbine blades are modelled as NURBS surfaces — tensor products of NURBS curves in two directions — with manufacturing tolerance controlled by curvature κ = |B′×B″|/|B′|³. Robot arms and autonomous vehicles plan smooth trajectories the same way: cubic or quintic splines through waypoints that minimise jerk, the third derivative of position, so joints and passengers are not subjected to sudden accelerations.

Często zadawane pytania

Jakie jest różnica między krzywą Bézier a splajnem?

Krzywa Bézier to pojedynczy segment wielomianowy zdefiniowany przez n+1 punktów kontrolnych. Splajn to krzywizna złożona z kilku segmentów Bézier połączonych z warunkami ciągłości, co zapewnia lokalną kontrolę – przesuwanie jednego uchwytu wpływa tylko na pobliskie segmenty, w przeciwieństwie do pojedynczej krzywej wielomianowej o wysokim stopniu, gdzie każdy punkt przesuwa cały kształt.

Dlaczego krzywe Bézier trzeciego stopnia dominują nad innymi stopniami?

Cztery punkty kontrolne zapewniają niezależną kontrolę nad końcami i oboma kierunkami styczności – dokładnie wystarczająco, aby spełnić ciągłość C¹ na styku bez nadmiernego ograniczania kształtu. Krzywe kwadratowe nie posiadają niezależnej styczności na każdym końcu; stopień 5 i wyższy dodaje złożoności z niewielką praktyczną korzyścią.

Czy krzywa Bézier może reprezentować idealny okrąg?

Nie – krzywa wielomianowa Bézier może jedynie przybliżyć okrąg. Krzywa Bézier racjonalna (NURBS z wagami) może go reprezentować dokładnie. Przybliżenie kwadrantowe oparte na krzywej Bézier trzeciego stopnia o długości uchwytu około 0,5523 promienia ma maksymalny błąd promieniowy blisko 0,027%, który jest niewidoczny przy rozdzielczości ekranu.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację the simulation

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)