Девлог #60 – Хвиля 40: криві Без'є, ефект Холла & ланцюгова лінія

Хвиля 40 охоплює комп'ютерну графіку, фізику напівпровідників і класичну механіку. Дослідник Де Кастельжо дозволяє перетягувати контрольні точки, щоб ліпити поліноміальні криві довільного ступеня, і спостерігати, як рекурсивна побудова анімується крок за кроком; симулятор ефекту Холла показує 40 носіїв заряду, що відхиляються під дією сили Лоренца, з обчисленням VH = IB/(nqd) у реальному часі; а симулятор ланцюгової лінії розв'язує параметр a за методом Ньютона й відображає точну форму y = a⋅cosh(x/a) — доводячи, що Галілей помилявся щодо парабол. Усі три запускаються з українськими перекладами.

Статистика релізу

493
Усього симуляцій
60
Записів девлогу
40
Хвиль релізів
1708
URL-адрес у мапі сайту

Нові симуляції

🎯

Криві Без'є

Перетягуйте контрольні точки, щоб побудувати криві Без'є ступеня 1–5 за алгоритмом Де Кастельжо. Анімуйте рекурсивну побудову й порівнюйте з B-сплайном.

Відкрити симуляцію →
🔵

Ефект Холла

Спостерігайте, як 40 анімованих носіїв заряду відхиляються під дією сили Лоренца. Перемикайте n-тип / p-тип, регулюйте струм і магнітне поле та зчитуйте VH = IB/(nqd) у реальному часі.

Відкрити симуляцію →
⛓️

Ланцюгова лінія

Перетягуйте точки кріплення й спостерігайте, як точна форма висячого ланцюга y = a⋅cosh(x/a) миттєво оновлюється. Накладіть параболу й дослідіть вектори натягу вздовж кабелю.

Відкрити симуляцію →

Криві Без'є

Криві Без'є — це основа векторної графіки, рендерингу шрифтів, траєкторій анімації та САПР-проєктування. На відміну від інтерполяційних сплайнів, що проходять через кожну контрольну точку, крива Без'є визначається опуклою оболонкою своїх контрольних точок і проходить лише через першу й останню. Крива Без'є ступеня-n — це поліном ступеня n за параметром t ∈ [0, 1].

Алгоритм Де Кастельжо обчислює цей поліном геометрично: на кожному рівні рекурсії послідовні пари точок лінійно інтерполюються при поточному t. Для кубічної кривої (ступінь 3) із чотирма контрольними точками P0–P3 три раунди лінійної інтерполяції дають одну точку на кривій. Симулятор малює кожен проміжний полігон окремим кольором, тож можна прослідкувати, як саме будується кінцева точка кривої.

Технічні деталі

Ефект Холла

Коли провідник зі струмом розміщений у магнітному полі, перпендикулярному до струму, носії заряду відхиляються вбік під дією сили Лоренца F = qv×B. Це створює поперечне електричне поле, яке зростає, доки електростатична сила точно не врівноважить магнітне відхилення. Отримана поперечна напруга і є напругою Холла:

VH = IB / (nqd)

де n — концентрація носіїв, q — заряд носія, а d — товщина провідника. Знак VH залежить від типу носія: електрони (n-тип) відхиляються протилежно до дірок (p-тип), тож полярність напруги Холла безпосередньо вказує на домінантний тип носіїв. Це основа датчиків Холла, які використовуються всюди — від контролерів бесколекторних двигунів до безконтактних енкодерів положення й компасів у смартфонах.

Деталі симуляції

Ланцюгова лінія

Галілей стверджував, що форма висячого ланцюга — парабола. У 1691 році Лейбніц, Гюйгенс і Йоганн Бернуллі незалежно вивели правильну відповідь: гіперболічний косинус, який тепер називають ланцюговою лінією (від латинського catena, ланцюг). Рівняння — y = a⋅cosh(x/a), де параметр a = T0/(wg) кодує співвідношення горизонтального натягу до ваги на одиницю довжини.

Симулятор приймає дві точки кріплення на довільній висоті й числово розв'язує a. При заданому горизонтальному прольоті d і бажаній довжині дуги L обмеження таке:

2a · sinh(d / (2a)) = L

Це трансцендентне рівняння не має аналітичного розв'язку, тож симулятор виконує до 80 ітерацій методу Ньютона, доки |Δa| < 10−6. Отримане a зазвичай сходиться за 15–25 ітерацій.

Технічні деталі

Технічні примітки

Усі три симуляції — це HTML5/Canvas 2D файли без жодних залежностей. Рекурсія Де Кастельжо обчислюється щокадру анімації без попереднього кешування, що зберігає простоту коду, залишаючись у межах бюджету кадру 16 мс для кривих аж до ступеня 5. Симуляція ефекту Холла використовує цикл частинок O(n) (40 частинок), що оновлюється через requestAnimationFrame. Розв'язувач Ньютона для ланцюгової лінії працює детерміновано у виклику draw(), завершуючись менш ніж за 0.1 мс.

Теги

Комп'ютерна графіка Криві Без'є Де Кастельжо B-сплайн Параметричні криві Ефект Холла Сила Лоренца Напівпровідник Напруга Холла Електромагнетизм Ланцюгова лінія Висячий ланцюг Гіперболічний косинус Метод Ньютона Хвиля 40