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
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
'H' CURVE
peano-gosper-curve

PROGRAM LSYS_H     !(HURRAH! 19th April 2004 © W.van Duyn)
SET WINDOW 0,1199,0,903
SET background color "white"
SET color 16
PRINT"Number of iterations try 6, size try 192"
INPUT depth,size
CLEAR
SET COLOR MIX (100)0.9,0.9,0.9     !light gray
SET COLOR MIX (200)0.8,0.1,0.8     !light magenta
LET w=(2^(depth+1))
LET f=size*4
LET h=f/w
LET x=600
LET y=450
LET k=90
LET a=0
CALL grid(w,h,f)
CALL turnLEFT(a,k)   &nssp; ! make 'H' vertical
SET color 200
CALL lsysH(depth,size,a,k,r,x,y)
END

SUB lsysH(depth,size,a,k,r,x,y)
IF depth=0 THEN
EXIT IF
ELSE
CALL turnLEFT(a,k)
CALL moveON(size,x,y,a)
CALL turnLEFT(a,k)
CALL moveON(size,x,y,a)
CALL lsysH(depth-1,size/2,a,k,r,x,y)
CALL turnLEFT(a,k)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL moveON(size,x,y,a)
CALL lsysH(depth-1,size/2,a,k,r,x,y)
CALL turnLEFT(a,k)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL moveON(size,x,y,a)
CALL turnLEFT(a,k)
CALL moveON(size,x,y,a)
CALL lsysH(depth-1,size/2,a,k,r,x,y)
CALL turnLEFT(a,k)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL moveON(size,x,y,a)
CALL lsysH(depth-1,size/2,a,k,r,x,y)
CALL turnLEFT(a,k)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL turnLEFT(a,k)
CALL jump(size,x,y,a)
CALL turnRIGHT(a,k)
END IF
END SUB

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

SUB jump(size,x,y,a)    !jump forward
OPTION ANGLE degrees
LET dx=size*cos(a)
LET dy=size*sin(a)
LET x=x+dx
LET y=y+dy
END SUB

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

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

SUB grid(w,h,f)
SET COLOR 100
LET dxy=f-h
LET dx=600+dxy/2
LET dy=450+dxy/2
LET x1=x0
LET y1=y0
FOR k = 1 to w
PLOT x1+dx,y0+dy; x1+dx-dxy,y0+dy
PLOT x0+dx,y1+dy; x0+dx,y1+dy-dxy
LET x0=x0-h
LET y0=y0-h
NEXT k
END SUB


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