Nie piszę w scilab'ie, ale podam ci przykład w JS'ie, więc przynajmniej będziesz wiedział jak teoretycznie zapisać sam algorytm.
Jak zdefiniować zmienne?
var vertices={A:{x:15,y:15},B:{x:23,y:30},C:{x:50,y:25}};
1. Wystartuj z dowolnego punktu początkowego wewnątrz trójkąta.
var r1=Math.random();
var r2=Math.random();
var randomPointX=(1-Math.sqrt(r1))*vertices.A.x+(Math.sqrt(r1)*(1-r2))*vertices.B.x+(Math.sqrt(r1)*r2)*vertices.C.x;
var randomPointY=(1-Math.sqrt(r1))*vertices.A.y+(Math.sqrt(r1)*(1-r2))*vertices.B.y+(Math.sqrt(r1)*r2)*vertices.C.y;
var randomPoint={x:randomPointX,y:randomPointY};
2. Wybierz losowo jeden z 3 wierzchołków trójkąta
var vertice=vertices[Object.keys(vertices)[Math.floor(Math.random()*Object.keys(vertices).length)]];
3. Nowy punkt znajduje się w połowie drogi między bieżącym punktem a wybranym wierzchołkiem.
var newPoint={x:(randomPoint.x+vertice.x)/2,y:(randomPoint.y+vertice.y)/2}
4. Kroki 2-3 powtórz N razy (np. 100 razy)
To co trzeba zamykasz w pętli i kod wygląda mniej więcej tak:
var N=Math.floor(Math.random()*100);
var vertices={A:{x:15,y:15},B:{x:23,y:30},C:{x:50,y:25}};
for(var i=0;i<N;i++){
var r1=Math.random();
var r2=Math.random();
var randomPointX=(1-Math.sqrt(r1))*vertices.A.x+(Math.sqrt(r1)*(1-r2))*vertices.B.x+(Math.sqrt(r1)*r2)*vertices.C.x;
var randomPointY=(1-Math.sqrt(r1))*vertices.A.y+(Math.sqrt(r1)*(1-r2))*vertices.B.y+(Math.sqrt(r1)*r2)*vertices.C.y;
var randomPoint={x:randomPointX,y:randomPointY};
var vertice=vertices[Object.keys(vertices)[Math.floor(Math.random()*Object.keys(vertices).length)]];
var newPoint={x:(randomPoint.x+vertice.x)/2,y:(randomPoint.y+vertice.y)/2}
}