FernwithRiAlgorithm
FernwithRiAlgorithm
num_iterations = 100;
% Define the transformation matrices and translation vectors for Barnsley Fern
p1 = 0.02;
p2 = 0.85;
p3 = 0.07;
p4 = 0.07;
% Iterative process
for i = 1:num_iterations
new_S(rand_vals < p1, :) = (A1 * S(rand_vals < p1, :)')' + repmat(t1', sum(rand_vals < p1), 1);
new_S(rand_vals >= p1 & rand_vals < p1 + p2, :) = (A2 * S(rand_vals >= p1 & rand_vals < p1 + p2, :)')' +
repmat(t2', sum(rand_vals >= p1 & rand_vals < p1 + p2), 1);
new_S(rand_vals >= p1 + p2 & rand_vals < p1 + p2 + p3, :) = (A3 * S(rand_vals >= p1 + p2 & rand_vals <
p1 + p2 + p3, :)')' + repmat(t3', sum(rand_vals >= p1 + p2 & rand_vals < p1 + p2 + p3), 1);
S = new_S;
end
figure;
hold on;
axis equal;
hold off;