47 lines
994 B
Plaintext
47 lines
994 B
Plaintext
|
|
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);
|
|
}
|
|
}; |