stal (Niter, NTrial)
% функція, що повертає зображення кристала
% Niter - порядок кристала
% NTrial - число випробувань = 4;% число афінних перетворень
% Створення масиву, що містить набір
% правил для афінних перетворень
k = 1; m = 1: Niteri = 1:4 ^ m Tmp (k) = system3 (i-1, Na); k = k +1; (1) = Na; m = 2: Niter Q (m) = Q (m-1) + Na ^ m; end = 1; s = '0 '; M = 1; n <= length (Tmp) = 1; n> Q (m) m = m +1; endm == 1 (n, 1:1) = s; (n, 1:1) = s; i = 2: m S (n, 1: i) = strcat (S (n, :), s); end = n +1; i = 1: k-1 tmp = num2str (Tmp (i)); m = 1; i> Q (m) m = m +1;
end = 0; y = 0;% координати початкової точки
% завдання афінних перетворень = [0.2550,0.0000; 0.0000,0.2550]; = [0.2550,0.0000; 0.0000,0.2550];
A3 = [0.2550,0.0000; 0.0000,0.2550];
= [0.3700, -0.6420; 0.6420,0.3700]; = [0.3726; 0.6714]; a2 = [0.1146; 0.2232]; = [0.6306; 0.2232]; a4 = [0.6356;! 0.0061] ; (1); hold on; (gca, 'xtick', [], 'ytick', []); (gca, 'XColor', 'w', 'YColor', 'w'); (Niter, NTrial , x, y, A1, A2, A3, A4, ..., a2, a3, a4, Cod);% візуалізація фракталаz = DrawFractal (Niter, NTrial, x, y, ..., A2, A3, A4, a1, a2, a3, a4, Cod)
% функція, що повертає зображення фрактала = zeros (NTrial, 1); Y1 = zeros (NTrial, 1);
X = x; Y = y; m = 1: NTrial = 1 + round ((size (Cod, 1) -1) * rand (1,1));
% вибір номера перетворення = Cod (Np, :);
for i = 1: length (Rule) = Rule (length (Rule) +1- i); tmp == '0 '[XY] = T (X, Y, A1, a1) ; endtmp == '1 '[XY] = T (X, Y, A2, a2); endtmp == '2' [XY] = T (X, Y, A3, a3); endtmp == '3 '[ XY] = T (X, Y, A4, a4); end (m) = X; Y1 (m) = Y; (X1, Y1, '.', 'MarkerSize', 1, 'MarkerEdgeColor', 'b' ); [X, Y] = T (x, y, A, a)
% Функція, яка повертає результат
% афінної перетворення = [x; y]; R = A * R + a;
X = R (1); Y = R (2); z = system3 (D, m);
% функція, що повертає значення
% числа в четверичной системі координат
n = 1; D> = m ^ nn = n +1; endn> 1 = floor (D/m ^ (n-1)) * 10 ^ (n-1); = mod (D, m ^ (n-1)); b> = mb = system3 (b, m); end = a + b; = D;
3.2.2 Зображення кристала
В
Малюнок 28 - Кристал (РСІФ)
.2.3 Код програми "Maple.m"
function z = Maple (Niter, NPoints) = 0; y1 = 0; = 1; y2 = 0; = 1/2; y3 = sin (pi/3); = zeros (NPoints, 1); y (j) = tmpy; j = j +1; i = 1:2 ^ Niter Tmp (i) = system2 (i-1, 2); end = 1; s = '0 '; n