Code Sketch


Grow Shrink Rotate Animation
By: Anay Narendra Kamat
Category: Programming
cleari()

def patternOfCircles:Picture = Picture{
    right(360,50)
    left(360,50)
    right()
    right(360,50)
    left(360,50)        
}


case class AngleAndSize(angle:Long, size:Long, direction:Long){

    def next = size match {
        case 0 => AngleAndSize(angle+1, size+1, 1)
        case 100 => AngleAndSize(angle+1, size-1, -1)
        case _ => AngleAndSize(angle+1, size+direction, direction)
    }   

    def drawing = 
        patternOfCircles.thatsScaled(size*2/100.0).thatsRotated(-angle)
    
}

def initialState = AngleAndSize(0,0,1)

animateWithRedraw[AngleAndSize](
    initialState,
    _.next,
    _.drawing
)