import graph; import stats; size(500); srand(10); struct Star { pair pos; real mult; } real range = 48.0; int n_stars=1000; Star[] stars=new Star[n_stars]; for(int i=0; i < n_stars; ++i) { Star s=new Star; s.pos=(Gaussrand()*range*2,Gaussrand()*range*2); s.mult=1.0; if (unitrand()<0.2) { s.mult=1.5; } else { if (unitrand()<0.1) { s.mult=4.0; } } stars[i]=s; } Star origin=new Star; origin.pos=(0,0); origin.mult=1.0; draw(circle(origin.pos,range*origin.mult),white); draw(circle(origin.pos,range),white+dashed); draw(circle(origin.pos,range*2),white+dashed); draw(circle(origin.pos,range*4),white+dashed); fill(circle(origin.pos,2),red); for (Star s: stars) { if (length(s.pos-origin.pos)<(range*origin.mult)) { draw(s.pos--origin.pos,white+dashed); fill(circle(s.pos,s.mult),green); } else { fill(circle(s.pos,s.mult),white); } };