factor/extra/cfdg/models/sierpinski/sierpinski.factor

37 lines
909 B
Factor

USING: kernel namespaces math opengl.gl opengl.glu ui ui.gadgets.slate
random-weighted cfdg ;
IN: cfdg.models.sierpinski
: shape ( -- ) circle ;
! : sierpinski ( -- )
! iterate? [
! shape
! [ 0.6 s 5 r 0.2 b -1.5 y 0 x sierpinski ] do
! [ 0.6 s 5 r -0.2 b 0.75 y -1.2990375 x sierpinski ] do
! [ 0.6 s 5 r 0.75 y 1.2990375 x sierpinski ] do
! ] when ;
: sierpinski ( -- )
iterate? [
shape
[ -1.5 y 0 x 0.6 s 5 r 0.2 b sierpinski ] do
[ 0.75 y -1.2990375 x 0.6 s 5 r -0.2 b sierpinski ] do
[ 0.75 y 1.2990375 x 0.6 s 5 r sierpinski ] do
] when ;
: top ( -- ) [ -13.5 r 0.5 b sierpinski ] do ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
: init ( -- )
[ ] >background
{ -4 8 -4 8 } >viewport
0.01 >threshold
[ top ] >start-shape ;
: run ( -- ) [ init ] cfdg-window. ;
MAIN: run