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

  • «ФРАКТАЛЬНАЯ ГРАФИКА» Отчет о выполнении лабораторной работы по дисциплине «Компьютерная графика»

  • Введение Задание: Вариант1

  • Описание исходных данных

  • Описание используемой среды программирования Для выполнения поставленной задачи мной выбрана среда программирования:PascalABCФункцио

  • компьютерная графика. Фрактальная графика


    Скачать 473.13 Kb.
    НазваниеФрактальная графика
    Дата30.03.2023
    Размер473.13 Kb.
    Формат файлаdocx
    Имя файлакомпьютерная графика.docx
    ТипОтчет
    #1026508

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

    Федеральное государственное бюджетное образовательное учреждение высшего образования

    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

    Кафедра автоматизации обработки информации (АОИ)

    ТЕМА: «ФРАКТАЛЬНАЯ ГРАФИКА»

    Отчет о выполнении лабораторной работы

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

    Вариант № 1

    Выполнил: Студент…

    Проверил: ///

    2023 г.

    Содержание

    1. Введениe

    2. Описание исходных данных

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

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

    5. Приложение №1

    6. Приложение №2


    Введение

    Задание:

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

    X0 (-2.2), Xn (1.0), Y0 (-1.2), Yn (1.2).

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

    Описание исходных данных

    x0, xn, y0, yn – Диапазон координат

    yc, xc – Экранные координаты

    my, mx - Масштаб для перевода координат в экранные

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

    Для выполнения поставленной задачи мной выбрана среда программирования:

    PascalABC

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

    В листинге программы можно менять координаты по х и у тем самым проявляется вариативность программы. В данных написаны следующие координаты:

    X0 (-2.2), Xn (1.0), Y0 (-1.2), Yn (1.2).

    Приложение №1

    Полный листинг программы:

    program Newton;

    uses GraphABC,Utils;

    type Complex = Record

    x : Real;

    y : Real;

    end;

    const iter = 50;

    max = 1e+6;

    min = 1e-6;

    var z, t, d : Complex;

    y, x, p : Real;

    xc, yc, n : Integer;

    mx, my : real;

    x0,xn,y0,yn : real;

    {Функция для перевода кода цвета в константу}

    function IntToColor(const kode: integer):color;

    begin

    case kode of

    0: result:=clBlack;

    1: result:=clBlue;

    2: result:=clGreen;

    3: result:=clCyan;

    4: result:=clRed;

    5: result:=clDarkMagenta;

    6: result:=clBrown;

    7: result:=clLightGray;

    8: result:=clDarkGray;

    9: result:=clLightBlue;

    10: result:=clLightGreen;

    11: result:=clLightCyan;

    12: result:=clLightPink;

    13: result:=clMagenta;

    14: result:=clYellow;

    15: result:=clWhite;

    end;

    IntToColor:=result;

    end;

    begin

    SetWindowSize(790,500);

    Window.Title := 'Фрактал Ньютона';

    Randomize;

    x0:=-2.2;xn:=1.0;

    y0:=-1.2;yn:=1.2;

    {начало экранных координат, смещено влево и вверх}

    xc := round(790*(-x0)/(xn-x0));

    yc := round(500*(-y0)/(yn-y0));

    {масштаб для перевода координат в экранные}

    mx:=xc/(-x0);

    my:=yc/-y0;

    y:=y0;{цикл по у}

    repeat

    x:=x0; {цикл по х}

    repeat

    n := 0;

    z.x := x;

    z.y := y;

    d := z;

    while (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)

    and (n < iter) do

    begin

    t := z;

    p := sqr(sqr(t.x)+sqr(t.y));

    z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);

    z.y := 2/3*t.y*(1-t.x/p);

    d.x := abs(t.x - z.x);

    d.y := abs(t.y - z.y);

    Inc(n);

    end;

    PutPixel(xc + round(x*mx),yc + round(y*my),IntToColor(16 - (n mod 16)));

    x:=x+0.001;{шаг по x: чем больше шаг, тем быстрее рисуется, но менее качественная картинка}

    until x>xn;

    y:=y+0.001; {шаг по y}

    until y>yn;

    end.

    Приложение №2

    Основное окно программы:


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