adding scott's examples from the computer class repo
This commit is contained in:
parent
50eb33a7f2
commit
51ba3a8bd9
64
10print.ld
Normal file
64
10print.ld
Normal file
|
@ -0,0 +1,64 @@
|
|||
penup! ()
|
||||
goto! (150, 150) & should be (-150, -150)
|
||||
right! (0.25)
|
||||
|
||||
let root_2 = 1.414213562
|
||||
let cell_size = 15
|
||||
let line_length = mult (root_2, cell_size)
|
||||
|
||||
fn upstroke! () -> {
|
||||
print! (:up)
|
||||
penup! ()
|
||||
forward! (cell_size)
|
||||
left! (0.125)
|
||||
pendown! ()
|
||||
back! (line_length)
|
||||
penup! ()
|
||||
forward! (line_length)
|
||||
right! (0.125)
|
||||
}
|
||||
|
||||
fn downstroke! () -> {
|
||||
print! (:down)
|
||||
pendown! ()
|
||||
right! (0.125)
|
||||
forward! (line_length)
|
||||
left! (0.375)
|
||||
penup! ()
|
||||
forward! (cell_size)
|
||||
right! (0.25)
|
||||
}
|
||||
|
||||
fn up_or_down! () -> {
|
||||
let rand = random ()
|
||||
if lt? (rand, 0.5)
|
||||
then upstroke! ()
|
||||
else downstroke! ()
|
||||
}
|
||||
|
||||
fn newline! () -> {
|
||||
penup! ()
|
||||
back! (mult (grid_size, cell_size))
|
||||
right! (0.25)
|
||||
forward! (cell_size)
|
||||
left! (0.25)
|
||||
}
|
||||
|
||||
let grid_size = 20
|
||||
|
||||
fn randcolor! () -> pencolor! ((random (0, 255), random (0, 255), random (0, 255)))
|
||||
|
||||
|
||||
|
||||
repeat grid_size {
|
||||
randcolor! ()
|
||||
up_or_down! ()
|
||||
}
|
||||
|
||||
& repeat grid_size {
|
||||
|
||||
& newline! ()
|
||||
& }
|
||||
|
||||
|
||||
|
44
gons_recur.ld
Normal file
44
gons_recur.ld
Normal file
|
@ -0,0 +1,44 @@
|
|||
fn ngon! (sides, size) -> {
|
||||
repeat sides {
|
||||
forward! (size)
|
||||
right! (div (1, sides))
|
||||
}
|
||||
:tada!
|
||||
}
|
||||
|
||||
fn randcolor () -> (random (0, 255), random (0, 255), random (0, 255))
|
||||
|
||||
fn pen_randcolor! () -> pencolor! (randcolor ())
|
||||
|
||||
fn spiral_gon! (iter) -> {
|
||||
loop (30, 0, colors :lime) with (size, times, color) -> {
|
||||
let randcolor = (random(0, 255), random(0, 255), random (0, 255))
|
||||
let newcolor = if eq? (color, colors :lime)
|
||||
then colors :fuchsia
|
||||
else colors :lime
|
||||
if lt? (times, iter)
|
||||
then {
|
||||
pen_randcolor! ()
|
||||
ngon! (5, size)
|
||||
right! (inv (iter))
|
||||
recur (add (size, 1), inc (times), newcolor)
|
||||
}
|
||||
else :ok
|
||||
}
|
||||
}
|
||||
|
||||
& spiral_gon! (100)
|
||||
|
||||
fn spiral_gonr! {
|
||||
(iter) -> spiral_gonr! (iter, iter, 30)
|
||||
(_, 0, _) -> :ok
|
||||
(iter, times, size) -> {
|
||||
pen_randcolor! ()
|
||||
ngon! (4, size)
|
||||
right! (inv (iter))
|
||||
spiral_gonr! (iter, dec (times), inc (size))
|
||||
}
|
||||
}
|
||||
goto! (37, 37)
|
||||
spiral_gonr! (100)
|
||||
print! (turtle_state())
|
9
koch.ld
9
koch.ld
|
@ -1,18 +1,19 @@
|
|||
& koch curve
|
||||
|
||||
let length = 10
|
||||
let angle = 0.25
|
||||
|
||||
fn koch! {
|
||||
(0) -> fd! (length)
|
||||
(n) -> {
|
||||
koch! (dec (n))
|
||||
lt! (0.25)
|
||||
lt! (angle)
|
||||
koch! (dec (n))
|
||||
rt! (0.25)
|
||||
rt! (angle)
|
||||
koch! (dec (n))
|
||||
rt! (0.25)
|
||||
rt! (angle)
|
||||
koch! (dec (n))
|
||||
lt! (0.25)
|
||||
lt! (angle)
|
||||
koch! (dec (n))
|
||||
}
|
||||
}
|
||||
|
|
31
koch_tri.ld
Normal file
31
koch_tri.ld
Normal file
|
@ -0,0 +1,31 @@
|
|||
& koch triangles!
|
||||
|
||||
let angle = inv (3)
|
||||
|
||||
let half = div (_, 2)
|
||||
|
||||
fn koch! {
|
||||
(0, len) -> fd! (len)
|
||||
(n, len) -> {
|
||||
let newlen = div (len, 3)
|
||||
let next = dec (n)
|
||||
koch! (next, newlen)
|
||||
left! (half (angle))
|
||||
koch! (next, newlen)
|
||||
right! (angle)
|
||||
koch! (next, newlen)
|
||||
left! (half (angle))
|
||||
koch! (next, newlen)
|
||||
}
|
||||
}
|
||||
|
||||
& just give ourselves some runway
|
||||
penup! ()
|
||||
left! (0.25)
|
||||
forward! (350)
|
||||
right! (0.5)
|
||||
pendown! ()
|
||||
|
||||
& make the triangles!
|
||||
koch! (6, 800)
|
||||
|
Loading…
Reference in New Issue
Block a user