Фигуры Лиссажу -
первая любовь каждого программиста...
Нет более достойного и приятного
занятия, чем рисование фигур Лиссажу. Начнем, конечно, с
классики: кривая под названием
"Безумие" была случайно получена в процессе любительских опытов С. Миллером
и описана А.К. Дьюдни в рубрике "Занимательный компьютер" (см. А.К. Дьюдни.
Графотворчество невидимого профессора, скрытого за экраном дисплея// В мире
науки - 1988/№7). Смотрите также
статью "Сложность и красота"
известного постоянным посетителям Александра Колесникова (смотрите его
раздел "Компьютерные вести" в
Арбузниках)
И, сразу же, ее алгоритм:
xx = rr * (Sin(0.99 * v) + 0.7 * Cos(3.01 * v)) + xmax /
2
yy = rr * (Cos(1.01 * v) - 0.1 * Sin(15.03 * v)) + ymax / 2
Надеюсь - все ясно... (v - счетчик
цикла - центральный угол в полярных координатах, тоже и в следующих
фрагментах кода, шаг приращения и верхнюю границу с наслаждением найдете
сами...)
Внезапно из этого "Безумия" получилась четкая такая форма - очень даже
неожиданно
И ее кодик:
xx = rr * (Sin(0.995 * v) + 0.6 * Cos(2# * v)) + xmax / 2
yy = rr * (Cos(1.005 * v) - 0.05 * Sin(15.075 * v)) + ymax / 2
Малейшие изменения параметров искажают картинку:
Кодик:
xx = rr * (Sin(0.995 * v) + 0.6 * Cos(2# * v)) + xmax / 2
yy = rr * (Cos(1.005 * v) - 0.05 * Sin(15.05 * v)) + ymax / 2
Если кто-то читал о торе (Бублики,
планеты и колечки дыма), то помнят, что я предлагал сшить тор из старого
чулка и попытаться вывернуть его наизнанку... Эта картинка как раз для тех,
у кого нет старого чулка - это и есть тор из сетки...
Если еще попробовать поменять параметры, то Безумие перерастает в
Помешательство...
Кодик для желающих
xx = rr * (Sin(0.995 * v) + 0.6 * Cos(2# * v)) + xmax / 2
yy = rr * (Cos(1.005 * v) - 0.05 * Sin(15.075 * v)) + ymax / 2
Можете продолжить эти небезопасные опыты...
А мы переходим к розеткам, которые рисуют на всяких денежных бумажках... и
первая же картинка показывает нам старую знакомую - Улитку Паскаля (статья о
ней -Улитка на паутине в
стиле попарт)
Фрагмент кода:
r0 = 110
For v = 0 To 101 * pi Step 0.001
rr = r0 + 120 * Sin(v * 1) ^ 1 + 90 * Sin(v * 18.125) ^ 3
Дальше должно быть ясно..
А поменяв показатель степени у первого синуса на 5
rr = r0 + 120 * Sin(v * 1) ^ 5 + 90 * Sin(v * 18.125) ^ 3
Получим грушу с фитилечком:
Все, надоели формулы, коды, алгоритмы - дальше сами...
Можете использовать как логотип...
или для защиты ваших акций от подделки...
Если получите красивее - прошу
в Форум, если нет - все равно....
Еще картинки без кода - попробуйте сами...
|