stairs Art/Electric
L-SYSTEMS
back to programs
 
koch snowflakes
general von koch
hilbert curve
pythagorean tree
H-H dragon curve
peano-gosper 19
'H' branching curve
plant
sierpinski square
sierpinski arrow
gosper square
sierpinski curve
spirograph circle
sierpinski carpet
easy carpet
sierpinski gasket
peano-gosper 13
peano-gosper 7
peano curve
penrose tiling
snowflake halls
peano octagon
peano hexagon
levy curve
sierpinski pentagon
not sierpinski
peano curve - H
square knot
sierpinski square 2
koch pentagram
fass curve
square cross
cesaro triangle
realistic snowflake
gray code dragon
sierpinski gasket 3
sierpinski sieve
koch square curve
dekking island
koch island
koch ff curve
hexagon spacefill
 
e-mail
SIERPINSKI CARPET - MODIFIED PEANO CURVE
lsys sierpinski carpet easy
comparison mouseover reveals construction

PROGRAM LSYS_SIERPINSKI_EASY_CARPET   !( © W.Van Duyn 25thApril 2004)
SET WINDOW 0,1199,0,903
SET background color "white"
SET color 16
CALL init
END

SUB init
OPTION ANGLE degrees
PRINT"Input x try 200, y try 450"
INPUT x,y
PRINT"Input size try 802, level try 4, type 4"
INPUT size,level,ak
CLEAR
FLOOD 1,1
LET k=360/ak
LET r= 3
LET d=size/r^level
LET a=0
LET lev=level
SET COLOR 13
CALL lsys(lev,d,a,k,x,y,ak)
END SUB

SUB lsys(lev,d,a,k,x,y,ak)
IF lev=0 THEN
CALL moveON(d,x,y,a)
EXIT IF
ELSE
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL turnLEFT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL turnRIGHT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL turnRIGHT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL push(d,x,y,a)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL turnRIGHT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL turnRIGHT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
CALL pop(d,x,y,a)
CALL turnLEFT(a,k)
CALL lsys(lev-1,d,a,k,x,y,ak)
END IF
END SUB

SUB moveON(d,x,y,a)
OPTION ANGLE degrees
LET dx=x+d*cos(a)
LET dy=y+d*sin(a)
PLOT x,y;dx,dy
LET x=dx
LET y=dy
END SUB

SUB turnLEFT(a,k)
LET a=a+k
END SUB

SUB turnRIGHT(a,k)
LET a=a-k
END SUB

MODULE stack
SHARE state(20,4),stack
LET stack=1
SUB push(d,x,y,a)
LET state(stack,1)=d
LET state(stack,2)=x
LET state(stack,3)=y
LET state(stack,4)=a
LET stack=stack+1
END SUB
SUB pop(d,x,y,a)
LET stack=stack-1
LET d=state(stack,1)
LET x=state(stack,2)
LET y=state(stack,3)
LET a=state(stack,4)
END SUB
END MODULE


Website, Text and Some Images Copyright © 2002 tzingaro.com, all rights reserved.