function [ x, y, regra ] = triangulo( N, probabilidades )
% para inicializar os vetores x e y
x = zeros(N,1);
y = zeros(N,1);
regra = zeros(N,1);

% % ponto inicial randomico
% x(1) = rand;
% y(1) = rand;

% ponto inical em (x,y)=(1,1)
x(1) = 1;
y(1) = 1;

if nargin<2
    probabilidades = [ 1/3 1/3 1/3];
end
prob_acumulada = cumsum( probabilidades );
for n=1:(N-1)
    aleat = rand(1);
    if aleat<prob_acumulada(1)
        % usa a regra 1 (1/3 de chance)
        x(n+1) = .5 * x(n);
        y(n+1) = .5 * y(n);
        regra(n+1) = 1;
    elseif aleat<prob_acumulada(2)
        % usa a regra 2 (1/3 de chance)
        x(n+1) = .5 * x(n) + 1;
        y(n+1) = .5 * y(n);
        regra(n+1) = 2;
    else
        % usa a regra 3 (1/3 de chance)
        x(n+1) = .5 * x(n) + .5;
        y(n+1) = .5 * y(n) + 1;
        regra( n+1 ) = 3;
    end
end
