reset
to Ripplepen :re :gr :bl :thickness
penwidth 10
color [0 0 0]
make "rd 0
make "gn 0
make "be 0
make "ra 1
repeat :thickness[
circle :ra
make "ra :ra + 1
if :rd < :re[
make "rd :rd + 1.5
]
if :gn < :gr[
make "gn :gn + 1.5
]
if :be < :bl[
make "be :be + 1.5
]
color [:rd :gn :be]
]
penwidth 1
end
to RipplepenInvert :re :gr :bl :thickness
penwidth 10
color [0 0 0]
make "rd 255
make "gn 255
make "be 255
make "ra 1
repeat :thickness[
circle :ra
make "ra :ra + 1
if :rd > :re[
make "rd :rd - 1.5
]
if :gn > :gr[
make "gn :gn - 1.5
]
if :be > :bl[
make "be :be - 1.5
]
color [:rd :gn :be]
]
penwidth 1
end
to Ripplefront :n :r :g :b :penwidth :invert
repeat :n[
pu
fw 1
pd
if :invert % 2 = 0 [
Ripplepen :r :g :b :penwidth
]
if :invert % 2 = 1 [
RipplepenInvert :r :g :b :penwidth
]
]
end
to Rippleback :n :r :g :b :penwidth :invert
rt 180
repeat :n[
pu
fw 1
pd
if :invert % 2 = 0 [
Ripplepen :r :g :b :penwidth
]
if :invert % 2 = 1 [
RipplepenInvert :r :g :b :penwidth
]
]
end
sety 500
;The Ripplepen Activation Sequence
Ripplefront 250 255 255 255 50 0
rt 90
Rippleback 250 255 255 255 50 0
rt 90
Ripplefront 250 255 255 255 50 0
rt 90
Ripplefront 500 255 255 255 50 0
rt 90
Ripplefront 250 255 255 255 50 0
rt 90
Ripplefront 250 255 255 255 50 0