function piano=genera_piano_3D(P, x_pixel ,y_pixel,d_min_var,d_max_var,diam_max_punto,sigma_var)
%P=[x y dist] su piano immagine
%x_pixel= numero pixel piano su asse x
%y_pixel= numero pixel piano su asse y

diam_max = diam_max_punto; %numero pixel massimo di un marker proiettato un piano immagine

vett_prob = zeros(1,50);
sigma = sigma_var;  %genero un vettore con andamento gaussiano di deviazione standard sigma

for i = 1:length(vett_prob)
   vett_prob(i) = sqrt(2*pi*(sigma^2))*normpdf(i-fix(length(vett_prob)/2),0,sigma);
end

matt_prob=vett_prob'*vett_prob;
piano=zeros(y_pixel , x_pixel); %alloco piano di dim_piano pixel

d_min = d_min_var; %[mm] visuale minima della videocamera
d_max = d_max_var; %[mm] visuale massima della videocamera

for i=1:+1:length(P(:,1))           %alloco tutti i punti
    
    %il simulatore fornisce x_p,y_p già in pixel per cui ne considero
    %semplicemente la parte intera mediante fix
    x_p=fix(P(i,1));
    y_p=fix(P(i,2));
    
    
    diam_pixel=pixel_distanza(P(i,3),d_min,d_max);

    for i_x=1:1:length(matt_prob) %scorro matrice probabilita'
       for i_y=1:1:length(matt_prob) %scorro matrice probabilita'
          distanza=dist([i_x i_y],[length(matt_prob)/2 length(matt_prob)/2]');
           if distanza<=(diam_pixel/2) && distanza~=0 %se fuori dal cerchio di raggio 25 cestino
              if rand < matt_prob(i_y,i_x)  
                x_pos=fix(x_p-(length(matt_prob)/2)+i_x); %calcolo posizione su piano immagine
                y_pos=fix(y_p-(length(matt_prob)/2)+i_y);
                  if x_pos>0 && x_pos<x_pixel+1 && y_pos>0 && y_pos<y_pixel+1 %controllo che la posizione sia valida
                      piano(y_pos,x_pos)=1; 
                  end
             
              end
              
           end
       end
    end
end


