Statystyki wydania
Nowe symulacje
Krzywe Béziera
Przeciągaj punkty kontrolne, aby zbudować krzywe Béziera stopnia 1–5 metodą De Casteljau. Animuj rekurencyjną konstrukcję i porównaj z B-splajnem.
Otwórz symulację →Efekt Halla
Obserwuj 40 animowanych nośników ładunku odchylających się pod wpływem siły Lorentza. Przełączaj typ n / p, reguluj prąd i pole B oraz odczytuj na żywo VH = IB/(nqd).
Otwórz symulację →Łańcuchownica
Przeciągaj punkty zaczepienia i obserwuj natychmiastową aktualizację dokładnego kształtu wiszącego łańcucha y = a⋅cosh(x/a). Nałóż parabolę i badaj wektory naprężenia wzdłuż liny.
Otwórz symulację →Krzywe Béziera
Krzywe Béziera są podstawą grafiki wektorowej, renderowania czcionek, ścieżek animacji i projektowania CAD. W przeciwieństwie do splajnów interpolujących, które przechodzą przez każdy punkt kontrolny, krzywa Béziera jest zdefiniowana przez otoczkę wypukłą swoich punktów kontrolnych i przechodzi tylko przez pierwszy i ostatni z nich. Krzywa Béziera stopnia n jest wielomianem stopnia n względem parametru t ∈ [0, 1].
Algorytm De Casteljau oblicza ten wielomian geometrycznie: na każdym poziomie rekursji kolejne pary punktów są liniowo interpolowane przy bieżącym t. Dla sześcianu (stopień 3) z czterema punktami kontrolnymi P0–P3, trzy rundy interpolacji liniowej dają pojedynczy punkt na krzywej. Symulator rysuje każdy pośredni wielokąt w odrębnym kolorze, więc można dokładnie prześledzić, jak konstruowany jest końcowy punkt krzywej.
Szczegóły techniczne
-
Rekurencyjny algorytm De Casteljau przez
deCasteljau(pts, t), zwracający tablicę punktów pośrednich na każdym poziomie, renderowanych w mapie kolorów zależnej od poziomu. - Porównanie z B-splajnem wykorzystuje algorytm Coxa–de Boora z jednorodnym, zaciśniętym wektorem węzłów, rysowanym jako przerywana nakładka.
-
Pointer API do przeciągania:
pointerdown/pointermove/pointerupzsetPointerCapturedla niezawodnego wejścia na różnych urządzeniach. - Tryb animacji zwiększa t o 0,003 na klatkę (60 fps), zapętlając się 0→1→0 z płynnym odbiciem.
Efekt Halla
Gdy przewodnik z prądem umieszczony jest w polu magnetycznym prostopadłym do prądu, nośniki ładunku są odchylane w bok przez siłę Lorentza F = qv×B. Powoduje to narastanie poprzecznego pola elektrycznego, aż siła elektrostatyczna dokładnie zrównoważy odchylenie magnetyczne. Powstałe napięcie poprzeczne to napięcie Halla:
VH = IB / (nqd)
gdzie n to gęstość nośników, q ładunek nośnika, a d grubość przewodnika. Znak VH zależy od typu nośnika: elektrony (typ n) odchylają się przeciwnie niż dziury (typ p), więc polaryzacja napięcia Halla bezpośrednio wskazuje dominujący typ nośnika. To podstawa działania czujników Halla, stosowanych wszędzie — od sterowników silników bezszczotkowych po bezdotykowe enkodery położenia i kompasy w smartfonach.
Szczegóły symulacji
-
40 cząstek zainicjowanych z losowymi pozycjami. W każdej
klatce prędkość dryfu
v_d = I / (n · q · A)(A = przekrój poprzeczny przewodnika) przesuwa każdy nośnik wzdłuż osi prądu. -
Poprzeczne przemieszczenie Lorentza rośnie jako
Δy = q · v_d · B · dt / m, ograniczone przy saturacji (odzwierciedlającej narastanie pola Halla). - Nośniki typu n (elektrony, niebieski, –q) odchylają się przeciwnie niż dziury typu p (czerwony, +q), zgodnie z eksperymentalnymi konwencjami znaków.
- Tło pola B jest wizualizowane jako siatka symboli ⊙ (w głąb strony) lub ⊗ (z płaszczyzny strony), która aktualizuje się, gdy B = 0 (wyłączone).
Łańcuchownica
Galileusz twierdził, że kształt wiszącego łańcucha jest parabolą. W 1691 roku Leibniz, Huygens i Johann Bernoulli niezależnie wyprowadzili poprawną odpowiedź: kosinus hiperboliczny, dziś zwany łańcuchownicą (od łacińskiego catena, łańcuch). Równanie to y = a⋅cosh(x/a), gdzie parametr a = T0/(wg) koduje stosunek naprężenia poziomego do ciężaru na jednostkę długości.
Symulator przyjmuje dwa punkty zaczepienia na dowolnych wysokościach i numerycznie rozwiązuje a. Przy zadanym rozstawie poziomym d i pożądanej długości łuku L, ograniczenie ma postać:
2a · sinh(d / (2a)) = L
To równanie przestępne nie ma rozwiązania w postaci zamkniętej, więc symulator uruchamia metodę Newtona przez maksymalnie 80 iteracji, aż |Δa| < 10−6. Wynikowe a zazwyczaj zbiega w 15–25 iteracjach.
Szczegóły techniczne
-
Łańcuchownica jest próbkowana przy N = 300
równo rozłożonych wartościach x przez
a · cosh((x − cx) / a) + C, gdzie cx to punkt środkowy, a C to przesunięcie pionowe. -
Nakładka paraboli wykorzystuje tę samą głębokość zwisu co
łańcuchownica, ale dopasowaną funkcją kwadratową
A(x − cx)² + apex, co czyni różnicę wizualnie oczywistą w pobliżu zaczepów. -
Wektory naprężenia są skalowane proporcjonalnie do
T(x) = wa · cosh(x/a), pokazując, że naprężenie jest minimalne w najniższym punkcie i rośnie w kierunku podpór. - Suwak „Gęstość” efektywnie skaluje L względem rozstawu zaczepów, kontrolując głębokość zwisu bez przesuwania zaczepów.
Notatki techniczne
Wszystkie trzy symulacje to pliki HTML5/Canvas 2D bez zależności
zewnętrznych. Rekursja De Casteljau jest obliczana w każdej
klatce animacji bez wstępnego buforowania, co utrzymuje prostotę
kodu, mieszcząc się w budżecie 16 ms na klatkę nawet dla
krzywych stopnia 5. Symulacja efektu Halla wykorzystuje pętlę
cząstek o złożoności O(n) (40 cząstek) aktualizowaną
przez requestAnimationFrame. Solver Newtona dla
łańcuchownicy działa deterministycznie w wywołaniu
draw(), kończąc w czasie poniżej
0,1 ms.
Tagi
Grafika Komputerowa Krzywe Béziera De Casteljau B-Splajn Krzywe Parametryczne Efekt Halla Siła Lorentza Półprzewodnik Napięcie Halla Elektromagnetyzm Łańcuchownica Wiszący Łańcuch Kosinus Hiperboliczny Metoda Newtona Fala 40