TensaoSuperficial AlexandreV - fabrica-escola/artes-2o-ano-carmem-silva GitHub Wiki

"""
Uma primeira aproximação para mostar as ligações de hidrogênio que causam a tensão superficial
"""

moleculas = []

def setup():
    size(800, 800)
    for _ in range(2000):
        x = random(width)
        y = random(height)
        moleculas.append([x, y])
        
def draw():
    background(0)        
    stroke(255, 100)    
    for molecula in moleculas:
        for outra in reversed(moleculas):
                xa, ya = molecula
                xb, yb = outra
                if dist(xa, ya, xb, yb) < 30:
                    line(xa, ya, xb, yb)
        
    for x, y in moleculas:
        noStroke()
        H2O(x, y)
        
def keyPressed():
    saveFrame("agua.png")

        
def H2O(x, y, tamanho=6):
    deslocamento = tamanho * 0.66
    pushMatrix()    
    translate(x, y)
    rotate(x + y)
    fill(0, 0, 200)
    circle(0, 0, tamanho)
    fill(255)        
    circle(tamanho / 2.0, -deslocamento, deslocamento)
    circle( tamanho / 2.0, +deslocamento, deslocamento)
    popMatrix()

tensao superficial Alexandre