Code Sketch
Stop Sign
val x = 100 // outer red octagon size
val y = 95 // inner white octagon size
def rpoly(sides: Int, size: Int) {
repeat (sides) {
forward(size)
right(360.0/sides)
}
}
clear()
setAnimationDelay(100)
setFillColor(red)
// outer poly
rpoly(8, x)
// get to the right spot for the inner poly
penUp()
right()
forward( 0.5 * (x -y) * (1 + math.sqrt(2)))
left()
forward( 0.5 * (x -y))
penDown()
// inner poly
setPenColor(white)
setPenThickness(4)
rpoly(8, y)
val stop = "STOP"
val stopSize = 50
val tsize = textExtent(stop, stopSize)
// get to the right spot for "STOP" text
penUp()
right()
forward( 0.5 * (y * (1 + math.sqrt(2)) - tsize.width))
left()
forward( 0.5 * (y - tsize.height) + tsize.height)
penDown()
setPenFontSize(stopSize)
write(stop)