Крива, визначена в полярних координатах
Більшість кривих на цьому сайті визначаються як y=f(x) або параметричним рядом (x(t), y(t)). Крива «роза» природним чином існує у полярних координатах: відстань r від початку в кожному куті θ, дотримуючись простого правила r = a·cos(kθ) (або синусний варіант, який є такою ж кривою, оберненою на 90 градусів/k). Коли θ змінюється від 0 до 2π, радіус коливається між +a та -a, промальовуючи квітка петлі, яка називається пелюстками — цю форму також називають кривою родону, з грецького «роза».
Почему отрицательное r имеет значение и правило паритета
Когда r становится отрицательным, точка изображается в противоположном направлении от θ - то есть, от θ+π, а не от θ. Это соглашение является ключевым для наиболее контринтуитивной свойства кривой: количество видимых лепестков зависит от того, является ли k целым числом и четным или нечетным, а не просто от значения k.
Нечетное k → k лепестков (циклинг с отрицательным r отслеживает существующие лепестки) Четное k → 2k лепестков (циклинг с отрицательным r рисует новые лепестки) k = p/q рациональное число, в наименьших дробях → p лепестков, если p*q нечетное, в противном случае 2p лепестков Для нечетного k, проходя через угол θ второй полуоборотом (π до 2π) отрицательные значения r попадают точно на лепестки, уже нарисованные в первом полуобороте, поэтому видно только k лепестков, даже если траектория проходит через 2π угла. Для четного k, отрицательные значения r попадают в действительно новые места, удвоив количество лепестков до 2k. Эта асимметрия ошеломляет почти всех при первом знакомстве с ней: r=cos(2θ) рисует розовое растение с четырьмя лепестками, а не с двумя.
k odd integer → k petals (negative-r loops retrace existing petals) k even integer → 2k petals (negative-r loops draw new petals) k = p/q rational, lowest terms → p petals if p·q odd, else 2p petals
Раціональне значення k: великі трохилітні квіти, що роблять багато поворотів для закриття
Якщо k не є цілим числом, а раціональним числом p/q у найпростішому вигляді, то крива вже не буде замкненою після одного оберту 2π - їй потрібно, щоб θ прокотилося q·2π (якщо p·q є непарним) або q·π (якщо p·q є парним), перш ніж воно повернеться точно до свого початку та припинить перекриття нової території. Ці криві іноді називають Великими трохилітніми квітами на честь Гуїдо Гранді, який вивчав їх на початку 18-го століття та вперше зауважив правило парності підрахунку пелюсток. Зі збільшенням q кривій потрібно зробити багато більше обертів для закриття, а якщо k не раціональне число, то воно ніколи не закривається - траєкторія розвертається назавжди, заповнюючи кільце між r=0 і r=a все більш щільною, не повторюваною моделлю, подібно до нераціональних гіпоциклоїдів в іншому місці на цьому сайті.
Розові кривусі: особливий випадок періодичних функцій у полярних координатах
Розові кривусі є специфічним випадком більш широкої категорії кривих, що виражені як r=f(θ) в полярних координатах. При f(θ)=cos(kθ) та k=1 з використанням синусоїдальної функції отримується проста коло, яка проходить через початок координат; зміна коефіцієнта залежно від θ замість простого масштабування дає спіралі (r=aθ, спіраль Архімеда) замість пелюсток. Особливістю розових кривусів є періодичність cos(kθ), яка змушує криву повертатися через початок координат кожного разу, коли kθ проходить через непарне кратне π/2 – кожен такий перетин є межею пелюстки, точкою, де крива торкається полюса і змінює напрямок.
Перетворення в Картезіанську та малювання
Щоб відобразити криву на полотні, перетворіть кожен полярний зразок у декартові координати безпосередньо: x = r*cos(θ), y = r*sin(θ), де r обчислюється заново a*cos(kθ) на кожному кроці. Демо вибирає θ в невеликих інтервалах до фактичного кута закриття кривої (обчисленого з чисельника та знаменника k за допомогою правила парності вище, а не просто припущено 2π), тому криві з раціональними нецілими k відображаються правильно замість того, щоб бути обрізаними посередине пелюстки або безкінечно перемальованими.
for (let t = 0; t <= thetaMax; t += dt) {
const r = a * Math.cos(k * t);
const x = cx + r * Math.cos(t);
const y = cy + r * Math.sin(t);
drawLineTo(x, y);
}
Frequently asked questions
Чому r = cos(2θ) малює 4 пелюстки замість 2?
Це тому, що k=2 є парним. Для парних цілих чисел k, негативні значення r, які генеруються в другій половині переміщення θ, потрапляють на нові позиції замість повторного проходження по існуючих пелюстках, подвоюючи видимий лік пелюсток від k до 2k. Непарне k не має цього подвоєння, оскільки його негативні петлі точно припадають на вже намальовані пелюстки.
Що відбувається, якщо k не є цілим числом?
Якщо k=p/q є раціональним числом у найпростішому вигляді, крива потребує кількох повних обертів θ (не просто одного оберту 2π), перш ніж закрити цикл від свого початкового положення, з точним числом обертів і ліком пелюсток, встановленим p та q. Якщо k є нераціональним, крива ніколи не закривається і простежує щільніший і щільніший візерунок назавжди.
Чи є крива у формі троянди однаковою з квітковим лісажовим фігурою?
Ні, це різні конструкції, які можуть виглядати схожими зовні. Крива у формі троянди – це окреме полярне рівняння r=a⋅cos(kθ); лісажова фігура походить від двох незалежних синусоїдальних рухів в x та y з частотним співвідношенням і фазовим зсувом, побудованих у декартових координатах, і не проходить через фіксовану вісь, як роблять кожна пелюстка троянди.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Rose Curve і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Rose Curve