Уравнение для графика в виде сердца

Пусть математика сложит сердца

Один и один — получается два. Все одиноки — здесь ты, а там я.
Люди всегда одиноки вдвойне сами с собою наедине.
Если б их что-то сблизить могло, сразу б из двух получилось одно.
Пусть математика сложит сердца — чтобы проделать нам путь до конца.

Уильямс Джей, «Герои Ниоткуда»

Вероятно, пост следовало назвать «Как нарисовать анимированное сердечко ко дню Святого Валентина, используя математику не по назначению». Я отверг это название в пользу более поэтичного: как-никак, надвигается замечательный романтический праздник, который мы, айтишники и прочие нёрды, должны встретить во всеоружии. Я сразу покажу вам результат, а под хабракатом будет много букв о том, как я этого результата достиг.

Уравнение для графика в виде сердца

Дисклеймер

Я осознаю, что красивое мигающее сердечко можно сделать и без малейшего знания математики. Но разве это интересно?

Шаг 1. Параметризуем сердечко.

Для начала нам нужен математический объект, хотя бы отдалённо напоминающий сердечко. К счастью, для меня этот шаг был тривиален: ещё пару лет назад я обнаружил замечательную формулу как раз для такого случая (из эстетических соображений график на рисунке растянут по горизонтали, на самом деле он должен умещаться между -1 и 1).

Уравнение для графика в виде сердца

Формула была обнаружена из следующий соображений: возьмём обыкновенную окружность и представим, что она состоит из желе, будучи при этом жёстко прикреплена к оси ординат. Теперь «подуем» на неё снизу: прибавим к координате игрек некую функцию w(x) = w(x(t)), равную нулю при x=0, монотонно возрастающую при x>0 и чётную по x. После такого «дуновения» половинки окружности сместятся вверх, образуя «выпуклости» сердечка, а благодаря жёсткому креплению к оси Y образуется нижний «хвостик» и верхняя «вмятинка». В данном случае w(x(t)) = |x| 1/2 = |cos(t)| 1/2 . Можете самостоятельно попробовать другую «функцию дуновения» и посмотреть, что из этого выйдет.

Шаг 2. От параметрического задания к неявной функции.

x = cos(t)
y = sin(t) + |cos(t)| 1/2
y — |x| 1/2 = sin(t)
(y — |x| 1/2 ) 2 + x 2 = 1
f(x,y) = (y — |x| 1/2 ) 2 + x 2 — 1 = 0

Шаг 3. От неявной функции к функции двух переменных. Функция цвета.

Имея на руках f(x,y), мы наконец можем осуществить свою мечту: нарисовать красивую цветную картинку. Для этого нам понадобится ещё одна функция: функция цвета. Она должна принимать вещественный аргумент r и возвращать целое значение от 0 до 255. Также желательно, чтобы она была монотонна на каждой полуоси и имела максимум в точке нуль. В качестве такой функции можно взять, например, эту:

Здесь 100 — «магическое число», позднее мы его в полном соответствии с «хорошим стилем программирования» заменим параметром.
Теперь для каждой точки (x,y) мы можем задать цвет как rgb(c(f(x,y)), 0, 0). Те точки, которые раньше принадлежали непосредственно графику «сердечка», стали ярко-красными (обратите внимание на неподвижный светлый контур на гифке). По мере удаления от графика цвет будет тускнеть, пока на некотором расстоянии от него не станет чёрным.

Шаг 4. Добавляем параметр, создаём анимацию.

Теперь заменим магическое число 100 параметром k. Новая функция цвета выглядит так:

Пусть k — это некоторая функция времени. Тогда для каждой точки изображения в каждый момент времени мы можем вычислить её цвет (что и является, по сути, математическим определением анимации). Сначала я хотел взять что-нибудь типа k(t) = 80(sin(t)+1). Потом, однако, я понял, что при большом количестве кадров гифка будет весить более 640 килобайт. С другой стороны, при малом количестве кадров нет смысла заморачиваться с аналитическим заданием k(t). В итоге, чтобы добиться пульсирования сердца, я последовательно присвоил k значения 80, 90, 100, 110, 120, 110, 100, 90, а затем изображения, сгенерированные для этих значений, объединил в циклический GIF. В общем-то, всё.

Видео:Что лежит в сердце математика?Скачать

Что лежит в сердце математика?

Уравнение для графика в виде сердца

Уравнение для графика в виде сердца

Каждый из вас знаком со многими графиками функций: параболой, гиперболой, кубической параболой, но знаете ли вы, что существует такая функция, графиком которой является сердце?

Из уравнения вида ( x 2 + y 2 – 1)3 – x 2 y 3 = 0 получается график в форме сердца.

Давайте попробуем решить его .

Извлечем из кубического корня обе части уравнения:

У нас получилось квадратное уравнение, где a = 1; b = — x 2/3 ; c = x 2 — 1

Находим дискриминант: D = b 2 – 4 ac = (- x 2/3 ) 2 – 4*1*( x 2 -1) = x 4/3 – 4 x 2 + 4 и корни:

Уравнение для графика в виде сердца

Следовательно, на одно значение x приходится два значения y .

Находим несколько значений y , подставляя в функцию значения x :

Видео:Математическая функция в виде сердцаСкачать

Математическая функция в виде сердца

Разработка урока «Красивые графики. Построение графиков функций в полярной системе координат в электронных таблицах Excel»

Практическая работа «Красивые графики функций»

Построить спираль Архимеда по следующим данным:
— в столбце А – значения угла t в радианах от 0 до 10 с шагом 0,2
— в столбце В – значения r = 0,5* t
— в столбце С – значения х = r * cos ( t )
— в столбце D – значения y = r * sin ( t )
— выделить значения в столбцах С и D и построить диаграмму
(тип: точечная с гладкими кривыми )

Построить астроиду по следующим данным:
— в столбце А – значения угла t в радианах от 0 до 7 с шагом 0,2
— в столбце В – значения х = 2*( cos ( t )) 3
— в столбце С – значения y = 2*( sin ( t )) 3
— выделить значения в столбцах B и С и построить диаграмму
(тип: точечная с гладкими кривыми )

П остроить улитку Паскаля по следующим данным:
— в столбце А – значения a от 0 до 360 с шагом 10 (угол в градусах)
— в столбце В – значения t = a * π/180 (угол в радианах)
— в столбце С – значения p = cos ( t )–0,5
— в столбце D – значения x = p * cos ( t )
— в столбце Е – значения у = p * sin ( t )
— выделить значения в столбцах D и E и построить диаграмму
(тип: точечная с гладкими кривыми )

Построить лемнискату Бернулли по следующим данным:
— в столбце А – значения a от 0 до 360 с шагом 10 (угол в градусах)
— в столбце В – значения t = a * π/180 (угол в радианах)
— в столбце С – значения r = 2* sin (2* t ) 2
— в столбце D – значения x = r * cos ( t )
— в столбце E – значения y = r * sin ( t )
— выделить значения в столбцах D и E и построить диаграмму
(тип: точечная с гладкими кривыми )

П остроить график в форме сердца по следующим данным:
— в столбце А – значения a от 0 до 360 с шагом 10 (угол в градусах)
— в столбце В – значения t = a * π/180 (угол в радианах)
— в столбце С – значения x = 16*( sin ( t )) 3
— в столбце D – значения у =13* cos ( t )–5* cos (2* t )–2* cos (3* t )– cos (4* t )
— выделить значения в столбцах C и D и построить диаграмму
(тип: точечная с гладкими кривыми )

🎬 Видео

Все графики функций за 20 секундСкачать

Все графики функций за 20 секунд

График сердцаСкачать

График сердца

Математика это не ИсламСкачать

Математика это не Ислам

ЭЛЕМЕНТАРНО, ВАТСОН! Квадратичная Функция и ее график ПараболаСкачать

ЭЛЕМЕНТАРНО, ВАТСОН! Квадратичная Функция и ее график Парабола

Алгебра 9 класс. Графический способ задания функцииСкачать

Алгебра 9 класс. Графический способ задания функции

10 класс, 43 урок, Уравнение касательной к графику функцииСкачать

10 класс, 43 урок, Уравнение касательной к графику функции

Построить график ЛИНЕЙНОЙ функции и найти:Скачать

Построить график  ЛИНЕЙНОЙ функции и найти:

Сперматозоид-чемпион | наглядно показано оплодотворениеСкачать

Сперматозоид-чемпион | наглядно показано оплодотворение

Уравнение окружности и ее графикСкачать

Уравнение окружности и ее график

Линейная функция и ее график. 7 класс.Скачать

Линейная функция и ее график. 7 класс.

Квадратичная функция и ее график. 8 класс.Скачать

Квадратичная функция и ее график. 8 класс.

Построение графиков тригонометрических функций с помощью преобразований. Практ. часть. 10 класс.Скачать

Построение графиков тригонометрических функций с помощью преобразований. Практ. часть. 10 класс.

Алгебра | Построение графика линейной функции с положительными коэффициентами без таблицы | #shortsСкачать

Алгебра | Построение графика линейной функции с положительными коэффициентами без таблицы | #shorts

Math for free. Сердце в Excel. Графики в Excel.Скачать

Math for free. Сердце в Excel. Графики в Excel.

График квадратичной функции. #shortsСкачать

График квадратичной функции. #shorts

Как построить график линейной функции.Скачать

Как построить график линейной функции.

ГРАФИК ФУНКЦИИ 😉 #егэ #математика #профильныйегэ #shorts #огэСкачать

ГРАФИК ФУНКЦИИ 😉 #егэ #математика #профильныйегэ #shorts #огэ

Линейная функция и её график. Алгебра, 7 классСкачать

Линейная функция и её график. Алгебра, 7 класс
Поделиться или сохранить к себе: