Помощь - Поиск - Пользователи - Календарь
Полная версия: Рисование множества
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
valerianka97
Программа рисует довольно-таки интересное множество Жюлиа
uses GraphABC; 

function f(z : Complex) : Complex := z * z + (0.1, 0.1);
function g(z : Complex) : Complex := z * z + (-2, 0);

const iter = 50;
max = 16;
var x, y, n : Integer;
mx, my : Integer;
z : Complex;
begin
Randomize;
Mx := windowwidth div 2;
My := windowheight div 2;
for y := -my to my do
for x := -mx to mx do
begin
n := 0;
z := (x * 0.005, y * 0.005);
while (z.Magnitude < max) and (n < iter) do
begin
z := f(z) * g(z);
Inc(n);
end;
if n < iter then SetPixel(mx + x,my + y,RGB(2*(16 - n mod 16),12*(16 - n mod 16),28*(16 - n mod 16)))
else SetPixel(mx + x,my + y,RGB(5*(16 - n mod 16),30*(16 - n mod 16),70*(16 - n mod 16)));
end;
end.


Объясните пожалуйста смысл данных строк и констант iter и max, не могу ответить на вопрос "как рисуется это множество"
if n < iter then  SetPixel(mx + x,my + y,RGB(2*(16 - n mod 16),12*(16 - n mod 16),28*(16 - n mod 16)))
else SetPixel(mx + x,my + y,RGB(5*(16 - n mod 16),30*(16 - n mod 16),70*(16 - n mod 16)));
Нажмите для просмотра прикрепленного файла
OCTAGRAM
Принадлежность фракталу определяется как нерасходимость при стремлении количества итераций к бесконечности. Но бесконечность итераций вычислительно нельзя проверить, а аналитически этот алгоритм явно не умеет. Поэтому проверяется конечное множество итераций, и это iter. Чем больше этот параметр, тем выше детализация изображения.

За конечное число итераций число не уйдёт на бесконечность, оно просто станет большим по модулю. Под max подразумевается такое абсолютное значение, когда стало уже хорошо понятно, что ряд, в котором появилось такое большое по модулю число, уже точно разойдётся на бесконечности.

Строки рисуют точку цветом в зависимости от того, на какой итерации число в ряду стало слишком большим. Заодно это ответ на вопрос, как меняется изображение от изменения iter.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.