Про цю симуляцію
Ця симуляція дозволяє будувати й змінювати криві Безьє, B-сплайн і NURBS, перетягуючи контрольні точки. Криві Безьє обчислюються наживо рекурсивним алгоритмом де Кастельжо, тоді як B-сплайни й NURBS обчислюються базисними функціями Кокса-де Бора над затиснутим вектором вузлів. NURBS додають вагу для кожної точки, яка притягує криву до важчих точок і — за правильних ваг і нерівномірного вектора вузлів — може представити точну дугу кола, чого звичайні криві Безьє й B-сплайн ніколи не можуть.
🔬 Що показано
Для кривих Безьє риштування де Кастельжо повторно лінійно інтерполює між контрольними точками при параметрі t, видимо згортаючись рівень за рівнем до точки на кривій. Для B-сплайнів і NURBS крива будується з базисних функцій Кокса-де Бора, обчислених над затиснутим вектором вузлів. Пресет «Точне коло» показує 9-точковий раціональний NURBS із чергуванням ваг 1 і √2⁄2, що прокреслює математично ідеальне коло.
🎮 Як користуватися
Оберіть тип кривої (Безьє, B-сплайн або NURBS), потім перетягуйте порожні квадратні контрольні точки, щоб змінити криву, або клацніть на порожньому місці, щоб додати нову точку. Повзунок Степінь (1–5) задає степінь сплайна, Параметр t (0–1) рухає підсвічену точку вздовж кривої, а повзунок Вага (0,1–8) змінює форму кривих NURBS навколо обраної точки. Автопрогортка анімує t автоматично, а пресети завантажують S-подібну криву, петлястий B-сплайн, точне коло NURBS або чвертьдугу NURBS.
💡 Чи знали ви?
Коло NURBS — не наближення: з правильними контрольними точками, вагами 1 і √2⁄2 у чергуванні кутів квадратоподібного многокутника та вектором вузлів із повтореними внутрішніми вузлами (кратність 2), раціональні базисні функції відтворюють ідеальну дугу кола. Саме тому NURBS, а не звичайні криві Безьє чи B-сплайн, є стандартом для представлення кіл, еліпсів та інших конічних перетинів у CAD-програмах.
Поширені запитання
Що таке крива Безьє і як працює алгоритм де Кастельжо?
Крива Безьє — це гладка крива, задана набором контрольних точок, причому сама крива зазвичай торкається лише першої й останньої точки, «притягуючись» до інших. Алгоритм де Кастельжо обчислює точку на кривій при параметрі t, повторно виконуючи лінійну інтерполяцію: спершу між кожною парою сусідніх контрольних точок, потім між цими результатами, і так далі, поки не залишиться одна точка. Цей рекурсивний геометричний процес чисельно стабільний і саме його візуалізують кольорові лінії риштування в симуляції.
Що таке B-сплайн і чим він відрізняється від кривої Безьє?
B-сплайн будується з кількох поліноміальних фрагментів, гладко з'єднаних разом, керованих вектором вузлів, що визначає, де починається й закінчується кожен фрагмент, на відміну від однієї кривої Безьє, яка є одним поліномом на всьому діапазоні. Це означає, що B-сплайн може мати багато контрольних точок без довільного зростання степеня кривої, а переміщення однієї контрольної точки впливає лише на локальну частину кривої. Повзунок степеня в цій симуляції керує тим, скільки сусідніх контрольних точок впливає на кожен фрагмент кривої.
Що означає NURBS і що роблять ваги?
NURBS означає нерівномірний раціональний B-сплайн: «раціональний», бо кожна контрольна точка має вагу, що масштабує її вплив, і «нерівномірний», бо інтервали вектора вузлів не мусять бути рівномірними. Підвищення ваги контрольної точки сильніше притягує криву до неї, ніби вона має більшу «гравітацію», а вага 1 для кожної точки робить криву NURBS поведінково ідентичною звичайному B-сплайну. Ця додаткова гнучкість дозволяє NURBS представляти форми, як-от справжні кола й еліпси, яких криві лише з поліномів не можуть.
Як NURBS може представити точне коло?
Коло є конічним перетином, і його точне представлення вимагає раціональних (зважених) базисних функцій, а не звичайних поліномів, що саме й забезпечує NURBS. Пресет «Точне коло» в цій симуляції використовує дев'ять контрольних точок, розташованих у квадратоподібному многокутнику з чергуванням ваг 1 і √2⁄2 (cos 45°), у поєднанні з вектором вузлів, що повторює деякі вузли для створення різких з'єднань між чотирма чвертьдугами кола. Результат прокреслює математично ідеальне коло, а не просто близьке багатокутне наближення.
Що таке вектор вузлів і чому він важливий?
Вектор вузлів — це неспадна послідовність значень параметра, що визначає, де починається й закінчується кожен поліноміальний сегмент кривої B-сплайна чи NURBS, і наскільки гладко сегменти з'єднуються в кожному вузлі. «Затиснутий» вектор вузлів, використаний за замовчуванням у цій симуляції, повторює перший і останній вузол достатньо разів, щоб крива справді починалася й закінчувалася в перших і останніх контрольних точках, як це робить крива Безьє. Повторення внутрішнього вузла (як робить пресет точного кола) зменшує гладкість кривої в цій точці, і саме так створюються різкі переходи між дугами кола.