Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №1/2009


В мир информатики
Почтовый ящик

Как выглядит кардиоида?

После опубликования в нашей газете статьи о фракталах, в которой упоминается кривая, называемая “кардиоидой”, в редакцию пришло письмо от Сергея Хотеева, ученика гимназии № 1530 г. Москвы (учитель Шамшев М.В.). Сергей спрашивает, как выглядит эта кривая.

Отвечая на этот вопрос, сначала надо сказать о том, что кардиоида является частным случаем другой замечательной кривой — “улитки Паскаля”. Последняя названа так в честь Этьена Паскаля, отца знаменитого французского ученого, автора одной из первых вычислительных машин Блеза Паскаля. Для этой кривой характерны некоторые “геометрические свойства”, на которых останавливаться не будем.

Параметрические уравнения улитки Паскаля следующие:

Параметрическими такие уравнения называются потому, что определяют значения х и у каждой точки кривой в зависимости от некоторого параметра, в нашем случае от параметра f — угла наклона отрезка, соединяющего эту точку с началом координат. Кроме того, в уравнениях есть величины а и l — длины отрезков, с использованием которых осуществляется построение кривой с соблюдением условий, обеспечивающих проявление упомянутых чуть выше свойств.

Используя параметрические уравнения улитки Паскаля, можно получить ее изображение в программе — для этого надо рассчитать значения координат х и у для всех углов, скажем, от 1 до 360 градусов через 1 градус и поставить точку в соответствующем месте экрана. Программа на школьном алгоритмическом языке, решающая такую задачу, имеет вид:

алг Улитка_Паскаля

нач вещ x0, y0, a, l, угол2, цел угол

|Устанавливаем графический режим

|работы экрана

видео(17)

|Координаты центра экрана

x0 := цел(максX/2); y0 := цел(максY/2)

a := 100

l : = 50

|Для всех целых значений углов

нц для угол от 1 до 360

|Переводим угол в радианы

угол2 := 6.28 * угол/360

|Рассчитываем координаты

|соответствующей точки кривой

x := x0 + цел(a * cos(угол2) *

cos(угол2) + l * cos(угол2))

y := y0 + цел(a * sin(угол2) *

cos(угол2) + l * sin(угол2))

|и изображаем эту точку

точка(x, y)

кц

кон

Примечания

1. х0 и у0 — координаты центра экрана (с учетом этих координат рассчитываются значения х и у); значения х0 и у0 зависят от величин максХ и максУ, равных соответственно максимальному значению координат х и у в выбранном режиме работы экрана.

2. угол2 — величина угла в радианах.

3. Функция цел возвращает целую часть ее вещественного аргумента.

Выполнив программу, получим следующее изображение:

Рис. 1

Примечание: на самом деле при подготовке статьи это и следующее изображение мы получили в Excel, но сути дела это не меняет.

Задание для самостоятельной работы

Форма улитки Паскаля зависит от соотношения между отрезками а и l. Разработав программу на языке программирования, который вы изучаете, получите изображение кривой при:

— l/a < 1;

2 < l/a < 1;

— l/a = 2;

— l/a > 2.

Результаты, пожалуйста, присылайте в редакцию. Фамилии всех приславших ответы будут опубликованы, а лучшие ответы мы поощрим.

Внимательный читатель конечно же обнаружил, что среди предложенных к исследованию вариантов улитки Паскаля отсутствует вариант l/a = 1. Именно такой вариант и называется “кардиоидой”, т.е. “сердцеобразной” или “сердцевидной” (кардиа — по-гречески “сердце”). Почему — ясно из рис. 2, на котором изображена эта кривая.

Рис. 2

TopList