Параметрическое уравнение кривой улитки паскаля

Параметрическое уравнение кривой улитки паскаля

Улитка Паскаля – плоская кривая. Ее можно определить как геометрическое место точек М и М1, расположенных на прямых пучка с центром в точке О, лежащей на данной окружности радиуса R, и находящихся на равном расстоянии а по обе стороны от точки пересечения Р прямых пучка с окружностью – см. рис., – где а ρ = 2 Rcosφ + a,

где φ – полярный угол радиуса-вектора текущей точки.
Если а = 2R, то петля улитки Паскаля (сплошная линия внутри данной окружности на рис.) стягивается в точку, и улитка Паскаля вырождается в кардиоиду.

Если a > 2R, улитка Паскаля не имеет общих точек с данной окружностью (см. рис.).
В прямоугольных декартовых координатах улитка Паскаля имеет уравнение
(х 2 + у 2 – 2Rx) 2 – a 2 (x 2 + y 2 ) = 0.
Поэтому она является алгебраической кривой четвертого порядка.
Как видно из рисунков, улитка Паскаля симметрична относительно оси абсцисс, начало координат при а > 2R – двойная точка; при а ;

при этом в случае а < 2R площадь внутренней петли считается по этой формуле дважды.
Улитка Паскаля – конхоида окружности диаметра 2R; она же – частный случай декартова овала; она же – эпитрохоида.

Кривая названа в честь знаменитого французского ученого Б. Паскаля, изучавшего ее в первой половине XVII в.

Уравнения кривых. Кардиоида. Улитка Паскаля.

Если применить две окружности с равными радиусами и вращать одну вокруг другой, то образуется кардиоида(греч. кардиа — сердце) — математики считают, что сформированная кривая отдаленно схожа с сердцем.

Если брать точку не на самой катящейся окружности, а внутри ее, сместив в сторону от центра, тогда будет образована кривая, получившая название Улитка Паскаля или лимакона.

Пусть a диаметр исходной окружности, а l расстояние, на которое смещается точка вдоль радиус – вектора. Тогда возможны такие варианты улитки Паскаля: а > l, a = l и a 2 + у 2 +2аx) 2 – 4a 2 (х 2 + у 2 ) = 0;

в полярных координатах:

В прямоугольных координатах (параметрическая запись):

x = 2a cos t – a cos 2t;

Длина дуги одного витка кардиоиды, определяется формулой:

Площадь фигуры, ограниченной кардиоидой, определяется формулой:

.

Улитка Паскаля характеризуется уравнениями:

Площадь, ограниченная улиткой Паскаля:

.

При а > l площадь внутренней петли при вычислении по этой формуле считается дважды.

Улитка Паскаля на C++ с поворотом и анимацией

Выполнена новая небольшая, но интересная программа. Текст задачи:

Разработать GUI-приложение (WinForms C++) с использованием графики и анимации. Построить кривую улитка Паскаля по заданному параметрическому представлению x = cos²t + b cos t, y = a cos t sin t + b sin t, a > 0, b > 0, t ∈ [0, 2π]

Рассмотреть случаи, когда b > 2a, a b

Требуется разработать приложение, которое:

  • Выводит улитку Паскаля на экран
  • Позволяет изменять параметры с последующей перерисовкой
  • Позволяет задавать угол поворота осей и графика функции с последующей перерисовкой
  • Анимирует построение кривой

В итоге мы получим вот такое симпатичное приложение:

Немного теории по улитке Паскаля

Улитка (лимакон) Паскаля был открыт Этьеном Паскалем (отцом Блеза Паскаля) и назван другим французом Жилем-Персоном Робервалем в 1650 году, когда он использовал его в качестве примера своих методов рисования касательных, т.е. дифференцирования.

Название «лимакон» происходит от латинского limax, что означает «улитка». Этьен Паскаль переписывался с Мерсенном, чей дом был местом встреч известных геометров, включая Роберваля.

Когда b = 2ab = 2a, то лимакон становится кардиоидой, в то время как если b = ab = a, то он становится трисектрисой. Обратите внимание, что эта трисектриса не является трисектрисой Маклорена.

Улитка Паскаля это аналлагматическая кривая. Улитка также является катакаустикой круга, когда световые лучи исходят из точки на конечном (ненулевом) расстоянии от окружности. Это было показано Томасом де Сен-Лораном в 1826 году.

Ход решения на C++

Если бы у нас был обычный график функции, то есть простая зависимость y от x, то мы бы задали интервал x (например от -100 до 100), вычислили все значения y на данном интервале, получили 200 точек и эти точки отобразили бы на плоскости.

Но тут у нас параметрическое представление, что делает задачу несколько более сложной. Впрочем, не очень. Мы просто берем и проходим как бы по кругу из 360 градусов (шагов) — t ∈ [0, 2π]

А затем рисуем их

При этом не забывая использовать метод поворота на необходимое число градусов

Не забудем поставить и защиту от ввода некорректных значений. Вот одно из условий нашей программы:

Анимация достигается тем, что процесс прорисовки каждой точки происходит с определенной задержкой. Также не забываем использовать элемент backgroundWorker – чтобы считать и обновлять график функции в фоне, чтобы не происходило зависания интерфейса GUI программы.

В настоящий момент цена полных исходников программы с комментариями в коде составляет 500 рублей.


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

заметки, си плюс плюс, графики, функции, программы


источники:

http://www.calc.ru/Uravneniya-Krivykh-Kardioida-Ulitka-Paskalya.html

http://upread.ru/art.php?id=1048