Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,41 @@
|
|||
USING: accessors images images.loader kernel literals math
|
||||
math.bits math.functions make sequences ;
|
||||
IN: rosetta-code.sierpinski-triangle-graphical
|
||||
|
||||
CONSTANT: black B{ 33 33 33 255 }
|
||||
CONSTANT: white B{ 255 255 255 255 }
|
||||
CONSTANT: size $[ 2 8 ^ ] ! edit 8 to change order
|
||||
|
||||
! Generate Sierpinksi's triangle sequence. This is sequence
|
||||
! A001317 in OEIS.
|
||||
|
||||
: sierpinski ( n -- seq )
|
||||
[ [ 1 ] dip [ dup , dup 2 * bitxor ] times ] { } make nip ;
|
||||
|
||||
! Convert a number to binary, then append a black pixel for each
|
||||
! set bit or a white pixel for each unset bit to the image being
|
||||
! built by make.
|
||||
|
||||
: expand ( n -- ) make-bits [ black white ? % ] each ;
|
||||
|
||||
! Append white pixels until the end of the row in the image
|
||||
! being built by make.
|
||||
|
||||
: pad ( n -- ) [ size ] dip 1 + - [ white % ] times ;
|
||||
|
||||
! Generate the image data for a sierpinski triangle of a given
|
||||
! size in pixels. The image is square so its dimensions are
|
||||
! n x n.
|
||||
|
||||
: sierpinski-img ( n -- seq )
|
||||
sierpinski [ [ [ expand ] dip pad ] each-index ] B{ } make ;
|
||||
|
||||
: main ( -- )
|
||||
<image>
|
||||
${ size size } >>dim
|
||||
BGRA >>component-order
|
||||
ubyte-components >>component-type
|
||||
size sierpinski-img >>bitmap
|
||||
"sierpinski-triangle.png" save-graphic-image ;
|
||||
|
||||
MAIN: main
|
||||
Loading…
Add table
Add a link
Reference in a new issue