Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / extra / cfdg / models / sierpinski / sierpinski.factor
blob8257302a3e2b913426ac26c8f8194eb7a0a4df78
2 USING: kernel namespaces math opengl.gl opengl.glu ui ui.gadgets.slate
3        random-weighted cfdg ;
5 IN: cfdg.models.sierpinski
7 : shape ( -- ) circle ;
9 ! : sierpinski ( -- )
10 ! iterate? [
11 !   shape
12 !   [ 0.6 s 5 r  0.2 b -1.5  y          0 x sierpinski ] do
13 !   [ 0.6 s 5 r -0.2 b  0.75 y -1.2990375 x sierpinski ] do
14 !   [ 0.6 s 5 r         0.75 y  1.2990375 x sierpinski ] do
15 ! ] when ;
17 : sierpinski ( -- )
18 iterate? [
19   shape
20   [ -1.5 y          0 x 0.6 s 5 r  0.2 b sierpinski ] do
21   [ 0.75 y -1.2990375 x 0.6 s 5 r -0.2 b sierpinski ] do
22   [ 0.75 y  1.2990375 x 0.6 s 5 r        sierpinski ] do
23 ] when ;
25 : top ( -- ) [ -13.5 r 0.5 b sierpinski ] do ;
27 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29 : init ( -- )
30   [ ]           >background
31   { -4 8 -4 8 } >viewport
32   0.01          >threshold
33   [ top ]       >start-shape ;
35 : run ( -- ) [ init ] cfdg-window. ;
37 MAIN: run