-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtaulukko-rajahdys.org
61 lines (49 loc) · 1.62 KB
/
taulukko-rajahdys.org
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#+NAME: taulukko-rajahdys-satunnaismuutos
#+BEGIN_SRC processing :exports none
float suunta = random (2 * PI); // satunnainen suunta xy-tasossa
float pituus = random (1); // satunnaisen mittainen askel, pituus alle 1
float xMuutos = pituus * cos (suunta); // vastaava muutos x-suunnassa
float yMuutos = pituus * sin (suunta); // vastaava muutos y-suunnassa
#+END_SRC
#+NAME: taulukko-rajahdys
#+BEGIN_SRC processing :noweb yes :exports none
// taulukot: x- ja y-koordinaatit, muutokset x- ja y-suunnassa yhdellä
// askeleella
float[] xt, yt, xMuutokset, yMuutokset;
// kuinka monta pistettä piirretään
final int PISTEITA = 2000;
void setup ()
{
size (1000, 800);
colorMode (HSB, 100);
stroke (100); // pisteiden väri
// varataan taulukoille tilat
xt = new float [PISTEITA];
yt = new float [PISTEITA];
xMuutokset = new float [PISTEITA];
yMuutokset = new float [PISTEITA];
// kuvan keskipisteen koordinaatit
float kpX = width / 2.0;
float kpY = height / 2.0;
// asetetaan alkuarvot taulukoihin
for (int i = 0; i < PISTEITA; i++)
{
xt [i] = kpX;
yt [i] = kpY;
<<taulukko-rajahdys-satunnaismuutos>>
xMuutokset [i] = xMuutos; // muutokset x-suunnassa
yMuutokset [i] = yMuutos; // muutokset y-suunnassa
}
}
void draw ()
{
background (0);
// käydään kaikki pisteet läpi
for (int i = 0; i < PISTEITA; i++)
{
point (xt [i], yt [i]); // piirretään piste
xt [i] = xt [i] + xMuutokset [i]; // siirretään x-suunnassa
yt [i] = yt [i] + yMuutokset [i]; // siirretään y-suunnassa
}
}
#+END_SRC