Главная страница
Навигация по странице:

  • Введение

  • Основная часть

  • Описание метода решения задачи

  • Функциональные возможности программы

  • Приложение АЛистинг программы

  • Компьютерная графика Вектор Джулия. ЛБ 1 Пешнин Д.О. Компьютерная графика


    Скачать 100.74 Kb.
    НазваниеКомпьютерная графика
    АнкорКомпьютерная графика Вектор Джулия
    Дата07.05.2022
    Размер100.74 Kb.
    Формат файлаdocx
    Имя файлаЛБ 1 Пешнин Д.О.docx
    ТипОтчет
    #516241

    Министерство образования и науки Российской Федерации

    Федеральное государственное бюджетное образовательное
    учреждение высшего профессионального образования
    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
    Кафедра автоматизации обработки информации (АОИ)
    КОМПЬЮТЕРНАЯ ГРАФИКА
    Отчет о выполнении лабораторной работы № 1

    по дисциплине «Фрактальная графика»

    Вариант № 7

    Выполнил:
    Студент ФДО гр. з-420П8-4

    Д.О. Пешнин

    10.01.2022
    Проверил:
    Доцент каф. АОИ ТУСУР,

    канд. тех. наук
    Т.О. Перемитина


    2022
    Содержание



    Введение 3

    Основная часть 4

    Заключение 5

    Приложение А Листинг программы 6

    Приложение Б Результат работы программы 7



    Введение



    Задание:

    Реализовать программу, строящую фрактал Джулия с заданными границами расчета.
    Цель работы:

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

    Заданы следующие границы расчета фрактала:

    -

    -

    -

    -

    То есть

    Основная часть



    Описание используемой среды программирования

    В качестве языка программирования выбран объектно-ориентированный язык Python, а в качестве используемой среды - бесплатная IDE PyCharm Community.
    Описание метода решения задачи

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

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

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



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

    Для успешной компиляции программы предварительно необходимо скачать и установить библиотеку Pillow, выполнив команду во встроенном в IDE терминале, либо в командной строке Windows (предполагается, что сам Python уже установлен на компьютере): pip install pillow. Из неё импортируется модуль Image, необходимый для реализации возможности работы с изображениями.

    После компиляции программы в папке с файлом program.py появится изображение с именем juliaFr.png, в котором содержится отрисованный фрактал множества Джулия с заданными границами расчета.


    Заключение



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

    Приложение А
    Листинг программы





    1. # Программа построения фрактала Джулия

    2. from PIL import Image

    3. import random

    4. # Размеры изображения

    5. imgx = 512

    6. imgy = 512

    7. image = Image.new("RGB", (imgx, imgy))

    8.  

    9. # Область отрисовки

    10. xa = -1

    11. xb = 0.7

    12. ya = -0.9

    13. yb = 1.1

    14. maxIt = 255 # Максимальное число итераций

    15.  

    16. # Нахождение точки Джулия, используя множество Мандельброта

    17. while True:

    18. cx = random.random() * (xb - xa) + xa

    19. cy = random.random() * (yb - ya) + ya

    20. c = cx + cy * 1j

    21. z = c

    22. for i in range(maxIt):

    23. if abs(z) > 2.0:

    24. break

    25. z = z * z + c

    26. if i > 10 and i < 100:

    27. break

    28.  

    29. # Отрисовка фрактала Джглия

    30. for y in range(imgy):

    31. zy = y * (yb - ya) / (imgy - 1) + ya

    32. for x in range(imgx):

    33. zx = x * (xb - xa) / (imgx - 1) + xa

    34. z = zx + zy * 1j

    35. for i in range(maxIt):

    36. if abs(z) > 2.0:

    37. break

    38. z = z * z + c

    39. image.putpixel((x, y), (i % 8 * 32, i % 16 * 16, i % 32 * 8))

    40.  

    41. image.save("juliaFr.png", "PNG")

    42. print('Изображение фрактала сохранено с именем juliaFr.png')


    Приложение Б
    Результат работы программы




    Рис. 1 Фрактал Джулия


    написать администратору сайта