Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / extra / cfdg / models / snowflake / snowflake.factor
blob9efb3352fa7c7e2c9e9cff54d778ee2160a3bb37
2 USING: kernel namespaces math opengl.gl opengl.glu ui ui.gadgets.slate
3        random-weighted cfdg ;
5 IN: cfdg.models.snowflake
7 : spike ( -- )
8 iterate? [
9   { { 1    [ square
10              [ 0.95 y 0.97 s spike ] do ] }
11     { 0.03 [ square
12              [ 60 r spike ] do
13              [ -60 r spike ] do
14              [ 0.95 y 0.97 s spike ] do ] } }
15   call-random-weighted
16 ] when ;
18 : snowflake ( -- )
19 spike
20 [ 60 r spike ] do
21 [ 120 r spike ] do
22 [ 180 r spike ] do
23 [ 240 r spike ] do
24 [ 300 r spike ] do ;
26 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28 : init ( -- )
29   [ ]               >background
30   { -40 80 -40 80 } >viewport
31   0.1               >threshold
32   [ snowflake ]     >start-shape ;
34 : run ( -- ) [ init ] cfdg-window. ;
36 MAIN: run