Субота, 23.11.2024
Творча лабораторія
Меню сайту
Реклама
Категорії каталогу
MS Visual C++ 2005 Express Edition [3]
Середовища програмування [8]
Особливості встановлення та використання різних середовищ програмування
MS Visual Basic 6 [1]
Microsoft Visual Basic
C# [8]
Програмування мовою C#
C++ [3]
Паскаль [5]
ЛОГО [1]
Олімпіадне програмування [0]
Python [1]
Головна » Статті » Програмування » Паскаль

Фрактальні квадрати - 2

Нові статті

[19.02.2020] [C#]
Задача про розрізання квадрата (ООП, C#)
[09.02.2020] [Python]
Задача про розрізання квадрата (ООП, Python)
[06.02.2020] [Паскаль]
Задача про розрізання квадрата (ООП, Free Pascal)

Пилипчук О.П., вчитель інформатики Гаврилівської ЗОШ Теофіпольського району Хмельницької області

Фрактальні квадрати - 2

Рекурсія при побудові зображення (Паскаль)

Реалізуємо побудову фрактального малюнка засобами мови Паскаль в середовищі АЛГО. Оскільки принцип побудови детально розглянутий у статті "Фрактальні квадрати - 1", то обмежимось розглядом програми та її особливостей.



Процедура kwadrat, яка безпосередньо забезпечує побудову, отримує такі аргументи: ціле число G - для керування глибиною рекурсії, цілі числа x1,y1,x2,y2 - координати лівого верхнього та правого нижнього кутів базового прямокутника. Отже, основою візерунка може бути не лише квадрат, але й довільний прямокутник. Крім цього, до процедури введено команди для керування кольором ліній та заповнення фігур.

program kwadrat;

procedure kwadrat(G,x1,y1,x2,y2:integer);
var kX,kY:integer;
begin
  kX:=round((x2-x1)/3); {обчислення третини ширини...}
  kY:=round((y2-y1)/3);
{...та третини висоти}

  Brush( 1, G*60, 0, G*30);
{керування кольорами}
  Pen( 1, G*40, G*35,0);

  rectangle(x1+kX,y1+kY,x2-kX,y2-kY);
{центральний прямокутник}
 
  if G>0 then 
{перевірка глибини рекурсії}
  begin {рекурсивна побудова 8 менших прямокутників}
    kwadrat(G-1,x1,y1,x1+kX,y1+kY);
    kwadrat(G-1,x1+kX,y1,x2-kX,y1+kY);
    kwadrat(G-1,x2-kX,y1,x2,y1+kY);
    kwadrat(G-1,x1,y1+kY,x1+kX,y2-kY);
    kwadrat(G-1,x2-kX,y1+kY,x2,y2-kY);
    kwadrat(G-1,x1,y2-kY,x1+kX,y2);
    kwadrat(G-1,x1+kX,y2-kY,x2-kX,y2);
    kwadrat(G-1,x2-kX,y2-kY,x2,y2);
  end;
end; {
kwadrat}

begin
  kwadrat(4,0,0,486,486)
{обчислення третини ширини}
end.



Интернет реклама
Категорія: Паскаль | Додав: teachlab (21.06.2010)
Переглядів: 3109 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка


Статистика
Copyright Пилипчук О.П. © 2024
div id=