GMU:Bots 'n' Plots/minsoo hwang

From Medien Wiki

Meditation Bot

MinsooBot.gif



Meditation Bot Code


"""

Meditation Bot

"""

diameter = 400
centerX = diameter/2
centerY = diameter/2
boxSize = 120
balls = [(100,20,-2.5,3,20),(120,50,-3.5,-3,10),(70,20,-3.5,-3,10),
         (190,50,-1,-3,20),(300,50,-5,-3,10),(330,100,-2,-3,10)]


def setup():
    size(diameter, diameter+100)
    colorMode(RGB, 1)
    

def draw():
    
    #style
    rectMode(CENTER)
    ellipseMode(CENTER)
    noStroke()
          
    boxsize = 100


    angle = PI * sin(frameCount * 0.02)

    background(1,.1)
    
    
    #body
    fill(1,.1,.6,.6)
    rect(centerX,centerY+50,boxSize,boxSize)
    
    #head
    fill(1,.1,.6,.6)
    ellipse(centerX,centerY-boxSize+50, boxSize,boxSize)
    
    #leg
    fill(1,.1,.6,.6)
    rect(centerX-45,centerY+170,boxSize/4,boxSize)
    rect(centerX+45,centerY+170,boxSize/4,boxSize)
    
   
    position1x = centerX - boxsize/2
    
    position1y = centerY - boxsize/2 +50 
    position2x = centerX + boxsize/2 
    position2y = centerY - boxsize/2 +50
    
    # Right Arms
    drawArm(position2x, position2y, +1, angle - TWO_PI * .5)

    
    # Left Arms
    drawArm(position1x, position1y, -1, angle -TWO_PI * .5)

    
    #ball
    fill(0,.5,.8,.3)

    for i in range(len(balls)):
        x,y,dx,dy,r = balls[i]
        x += dx
        if constrain(x,r,diameter-r) != x: dx = -dx
        y += dy
        if constrain(y,r,diameter+100-r) != y: dy = -dy
        balls[i] = x,y,dx,dy,r
        ellipse(x,y,r,r)
        saveFrame("MinsooBot.gif")

    
def drawArm(xpos, ypos, direction, angle = -TWO_PI /2):
    pushMatrix()
    translate(xpos, ypos)
    scale(direction, 1)
    rotate(angle)
    rectMode(CORNER)
    rect(0, 0, 20, 150)
    popMatrix()