2 USING: kernel namespaces sequences random math math.constants math.libm vars
7 bubble-chamber.particle
8 bubble-chamber.particle.muon
9 bubble-chamber.particle.quark
10 bubble-chamber.particle.hadron
11 bubble-chamber.particle.axion ;
15 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17 VARS: particles muons quarks hadrons axions ;
21 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 2 pi * 1random >collision-theta
27 particles> [ collide ] each ;
29 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33 dim 2 / mouse-x - dim 2 / mouse-y - fatan2 >collision-theta
35 hadrons> random collide
36 quarks> random collide
37 muons> random collide ;
39 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41 : mouse-pressed ( -- )
44 11 [ drop collide-one ] each ;
46 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
57 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
59 : bubble-chamber ( -- )
67 1789 [ drop <muon> ] map >muons
68 1300 [ drop <quark> ] map >quarks
69 1000 [ drop <hadron> ] map >hadrons
70 111 [ drop <axion> ] map >axions
72 muons> quarks> hadrons> axions> 3append append >particles
79 [ particles> [ move ] each ]
83 [ mouse-pressed ] button-down
84 [ key-released ] key-up ;
86 : go ( -- ) [ bubble-chamber run ] with-ui ;