Перейти к содержанию

Фрактал на С++


Рекомендуемые сообщения

Пишу программу, рисующую в pictureboxе геометрический фрактал "Кривая Леви".

levy_curve_1.gif

Так она выглядит


levy_curve_2.gif

Составные части

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

Ссылка на комментарий

оо фракталы моя любимая тема :)

мне больше нравится черепашья геометрия

Элементы языка:

F - шаг вперед на определенное количество пикселов

+ - поворот против часовой стрелке на определенный угол

- - поворот по часовой стрелки на определенный угол

впринципе тебе этих 3 команд будет достаточно)

сделай три функции

первая прорисовывает линию(F) в заданном направлении на заданное количество пикселов

вторая и третья функции тупо меняют переменную, отвечающую за направление движения в данный момент

как только реализуешь эти процедурки тебе останется реализовать метод L-system

насколько я помню там

Аксиома +F--F+

инициатор F

угол поворота 45 градусов :)

Пример

1 шаг получаем аксиому F получаем горизонтальную линию

2 шаг получаем аксиому +F--F+ получается так: повернуться против часовой на 45 пойти вперед на n пикселов, повернуться 2 раза по 45 по часовой пойти вперед на n пикселов, повернуться против часовой на 45. ----> получается вот как раз крышечка такая)) как у тебя на рисунке 2 итерация

3 шаг получаем аксиому ++F--F+--+F--F++ Долго расписывать, но если пойдешь по алгоритму получишь мостик как у тебя на рисунке))

P.S. не забудь что с каждой итерацией коэффициент n надо уменьшать))

Есть другой способ так называемые IFS системы :) там несколько сложнее)

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...