Wednesday 28 March 2012

FINAL DEVELOPED!

I chose the very last development as my final one. So need to simplify for much clearer coding.


SIMPLIFIED, COMMENTED AND MUCH MUCH CLEARER CODE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
import math               ##import math library

cx = 400.
cy = 400.
rad = 300.

##define 'colors' list
colors = range(5)
colors[0] = color(10,58,74,150)
colors[1] = color(25,106,115,150)
colors[2] = color(50,166,166,150)
colors[3] = color(161, 191, 51,150)
colors[4] = color(200, 217, 74, 150)

def setup():              ##setup the sketch
    size(800, 800)
    stroke(255)         ##white stroke
    smooth()             ##smoother graphic
    frameRate(100)

def rcfunction():        ##random colours function
    if (mouseY<=200):
        rc = colors[0]
    if (mouseY>200) and (mouseY<=400):
        rc = colors[2]
    if (mouseY>400) and (mouseY<=600):
        rc = colors[3]
    if (mouseY>600) and (mouseY<=800):
        rc = colors[4]
    fill(rc)

def draw():                                                     ##draw on the sketch
    background(240)                                       ##almost white colour, refresh sketch
    time = millis()/9000.                                   ##change through time
    x = (float)(cx+rad*math.cos(time))            ##position X
    y = (float)(cy+rad*math.sin(time))             ##positin Y
    ##color changer | change through positionY
    if (y<=200.):
        rc = colors[0]
    if (y>200.) and (y<=400.):
        rc = colors[2]
    if (y>400.) and (y<=600.):
        rc = colors[3]
    if (y>600.) and (y<=800.):
        rc = colors[4]
    fill(rc)
    for i in range(1, 800):                               ##loop i = 1->799
        angle = y + i/2.01                                ##angle based on position Y
                                                                    ##increase i for distance between spirals
        transX = i * 1.618 * math.pow(math.sin(angle),1)                ##Xtranslation
        transY = i * 1.618 * math.pow(math.cos(angle),1)              ##Ytranslation
        width = math.pow(i, -1)                                                      ##can use sin or cos(whatever)
        ellipse(x+transX, y+transY, width+i*0.39, width+i*0.39)    ##width+i*... = amplify number(big or small)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

No comments:

Post a Comment