Проекты*

Графическое использование фрактальных структур в программировании

Работа призёра конкурса проектов и исследований «Наука для жизни» открытой городской научно-практической конференции «Наука для жизни» в секции «Математика и механика»

Направление работы: Программирование
Авторы работы: ГБОУ Школа № 1501
Предметы: Математика, Информатика
Классы: 11 класс
Мероприятия: Конкурс проектов и исследований «Наука для жизни» открытой городской научно-практической конференции «Наука для жизни» 2021 года

Актуальность

В век цифровых технологий очень важно оптимизировать работу графических систем. Фракталы как метод построения изображений менее ресурсоёмкий, чем аналогичные методы, особенно при использовании их в крупных проектах.

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

Цель

Создание программы, программный код и интерфейс которой помогут легко рассматривать несколько видов фракталов с различными параметрами, задаваемыми пользователем, и наглядно демонстрировать их построение.

Задачи

  1. Изучить математические модели построения нескольких видов фракталов.
  2. Преобразовать модели в виде программного кода языка Python.
  3. Освоить способы построения графиков на языке программирования Python.
  4. Получить программу для построения графиков фракталов с различными задаваемыми параметрами.

Оснащение и оборудование, использованное при создании работы

  • Язык программирования Python
  • Персональный компьютер

Описание

Для создания программы автор изучил математические модели фрактальных структур и способы их конвертации в программный код языка Python. Также для создания программы нужно было изучить синтаксис выбранного языка и такие библиотеки, как math, random, turtle.

Библиотека Math даёт доступ к некоторым популярным математическим функциям и константам, что позволяет использовать в коде более сложные математические вычисления. Для настоящей работы это дало возможность легко вычислить координаты вершины прямоугольного треугольника для построения фрактала «дерево Пифагора».

Библиотека Random отвечает за генерацию случайных данных и чисел. Она использовалась для построения двух фракталов: «треугольника Серпинского» и «папоротника Барнсли». Для построения «треугольника Серпинского» с параметрами «Случайно» программа должна сначала сгенерировать три аттрактора, а затем и четвёртую точку, от которой начинается отсчёт новых координат.

Для создания «папоротника Барнсли» программа внутри цикла генерирует случайное число, которое попадает в одну из четырёх частей вероятностного пространства папоротника, от чего зависит то, координаты какой точки будут подсчитаны и выставлены за текущую итерацию.

Библиотека Turtle отвечает непосредственно за создание графиков заданных фрактальных структур и отмечает все подсчитанные координаты на плоскости всплывающего у пользователя окна.

Результаты работы/выводы

В результате были изучены математические модели четырёх базовых фракталов, а также способы их графического построения и зависимость вида итоговых фигур от задаваемых параметров. Также была создана программа, которая способна осуществить графическое построение каждого из четырёх фракталов в зависимости от количества итераций, цвета и размера итоговых фигур. Программа является хорошим подспорьем для учащихся в начальном изучении базовых фрактальных структур, а также части её программного кода можно использовать в более глобальных проектах.