27 lines
1.0 KiB
Plaintext
27 lines
1.0 KiB
Plaintext
canvasdim = 1000;
|
|
n = 0.35*canvasdim^2;
|
|
canvas = ConstantArray[0, {canvasdim, canvasdim}];
|
|
init = Floor@(0.5*{canvasdim, canvasdim}); (*RandomInteger[canvasdim,2]*)
|
|
canvas[[init[[1]], init[[2]]]] = 1; (*1st particle initialized to midpoint*)
|
|
|
|
Monitor[ (*Provides real-time intermediate result monitoring*)
|
|
Do[
|
|
particle = RandomInteger[canvasdim, 2];
|
|
While[True,
|
|
ds = RandomInteger[{-1, 1}, 2];
|
|
While[ (*New Particle Domain Limit Section*)
|
|
!And @@ (0 < (particle + ds)[[#]] <= canvasdim & /@ {1, 2}),
|
|
particle = RandomInteger[canvasdim, 2];
|
|
];
|
|
(* Particle Aggregation Section *)
|
|
If[canvas[[(particle + ds)[[1]], (particle + ds)[[2]]]] > 0,
|
|
canvas[[particle[[1]], particle[[2]]]] = i;
|
|
Break[],
|
|
particle += ds
|
|
];
|
|
],
|
|
{i, n}],
|
|
{i, (particle + ds), MatrixPlot@canvas}
|
|
]
|
|
MatrixPlot[canvas,FrameTicks->None,ColorFunction->"DarkRainbow",ColorRules->{0 -> None}]
|