GMU:Bots 'n' Plots/Martin Schneider

From Medien Wiki

Martin's Demo Page


Robot Code

"""

My little robot

"""

# Parameters
diameter = 400
centerx = diameter / 2
centery = diameter / 2
boxsize = 40

# Drawing style

def setup():
    # Set up Canvas
    colorMode(RGB, 1)
    size(diameter, diameter)

def draw():

    # increase boxsize with every single frame
    boxsize = 100 + 50 * sin(frameCount * 0.1)
    angle = PI/8 * sin(frameCount * 0.1)
    background(1, .8, .8)
    
    # define style

    fill(1, .5)
    rectMode(CENTER)
    fill(1, .5)
    stroke(1)
    strokeWeight(10)
    
    # Body
    rect(centerx, centery, boxsize, boxsize)
    
    # Arm positions
    position1x = centerx - boxsize / 2
    position1y = centery - boxsize / 2
    position2x = centerx + boxsize / 2
    position2y = centery - boxsize / 2
    
    # Right Arms
    drawArm(position2x, position2y, +1, angle - TWO_PI * 3/8)
    drawArm(position2x, position2y + boxsize/2, +1, angle)
    
    # Left Arms
    drawArm(position1x, position1y, -1, angle -TWO_PI * 3/8)
    drawArm(position1x, position1y + boxsize/2, -1, angle)

    # Head
    pushStyle()
    fill(.5, .5 ,1, .5)
    ellipse(centerx, centery - boxsize, boxsize, boxsize)
    popStyle()
    

    # saveFrame("my_robot_######.gif")
    # print(frameRate)
    

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


==== While and If Else Code ====

<pre>

d = 5

size(200, 200)
colorMode(HSB, 1)
background(0)
strokeWeight(d-1)

x = 0

# go all the way
while x < 200:
    
    # increase by strokeweight
    x = x + d
    
    # color based on x-position
    
    if x < 50:
        stroke(0, 1, 1)
    elif x < 100:
        stroke(0.2, 1, 1)
    elif x < 150:
        stroke(0.3, 1, 1)
    else:
        stroke(0.4, 1, 1)
        
    line(x, 0, x, 200)