魔法薬の調合(2020.03.15)

作品解説

 魔法使いが魔法の薬を調合しているような、 そんな表現を模索して作ってみました。

 フラスコの底から何か湧き上がってくるような 表現となってますが、実は、各パーティクルの位置制御は行っていません。 詳細は以下のセクションで説明します。

ソースコードと解説

def setup():size(500,500);smooth()
def draw():
    clear()
    blendMode(REPLACE)
    stroke(150)
    noFill()
    x=250;y=250
    R=400
    circle(x,y,R)
    randomSeed(0)
    blendMode(SCREEN)
    f=frameCount*.005
    for i in range(4000):
        u=noise(i+f)*R-R/2
        v=noise(i*.1+f*5)*R*3-R/2
        r=min(max(R/2-mag(abs(u),abs(v)),0),random(15)+1)
        stroke(80,120,255,100)
        fill(50,120,255,100)
        circle(x+u,y+v,r)

 上でも触れた通り、 フラスコを模した円とパーティクルとは インタラクションしていません。

接触判定などは特にせず、 大きな円を飛び出すようなパーティクルの半径は 0 となり、描画されないだけです。

 この調整は r に値を代入する式によって実現されており、 ここでは、大きな円からはみ出さないようにも半径の調整が行われています。

大きな円から飛び出したパーティクルはただ描かれないだけですが、 それでもパーティクルの数が多いため、 平均値として、描かれるパーティクルが多いため、 特に違和感などは感じられないかと思います。