作品解説
Composition with Color Planes とは、言わずと知れた Mondrian の作品 https://arthive.com/pietmondrian/works/490233~Composition_with_color_planes_1 のことです。
この作品を、つぶやき Processing でアニメーション化することはできないだろうか?と考え、 この作品を作ってみました。
「主張する Composition with Color Planes」
— Koji Saito (@KojiSaito) March 7, 2020
モンドリアンの作品元ネタに つぶやきProcessing したかったのですが文字数削減できず失敗(残念)。
赤、青、黄色の色指定が
K=255
C=[[K,0,0],[0,0,K],[K,K,0]]
となり、意外に文字数を使っております。何か良い方法があればツィートできるのですが…。 pic.twitter.com/4ZNIuRVYXv
でも、文字数オーバーで、つぶやき Processing することができませんでした。
ソースコード
1 ツィートに収めることができなかったので、 これまでソースコードを掲載する機会がありませんでした。
今回、せっかくなので、このページに記載します:
P=[[i%6,i/6] for i in range(36)]
f=[0]
C=[[255,0,0],[0,0,255],[255,255,0]]
def setup():size(500,500);noStroke()
def F(f,i,x,y):
fill(*C[int(noise(i)*3)])
w=noise(i,f)*70+10
h=noise(f,i)*70+10
rect((x+noise(f,i))*80,(y+noise(i,f))*80,w,h)
def draw():
background(255)
f[0]+=0.1
[F(f[0],i,*P[i]) for i in range(36)]
colorMode(HSB,6) を使って、文字数削減を試みたのですが、 つぶやき Processing には至りませんでした(残念)。
R=range(36)
N=noise
P=[[i%6*80,i/6*80] for i in R]
f=[0]
S=[0,1,4]
def setup():size(500,500);noStroke();colorMode(HSB,6)
def F(f,i,x,y):fill(S[int(N(i)*3)],6,6);s=N(f,i);t=N(i,f);rect(x+s*80,y+t*80,s*70+10,t*70+10)
def draw():background(0,0,6);f[0]+=.1;[F(f[0],i,*P[i]) for i in R]
ついに、つぶやきProcessing へ
2020.05.20 追記
「もうちょっとで 1 ツィートに収められそうだったんですが」と呟いていたら、 @ryotako さんが、色指定の部分を Python のスライスを使うことで 1 ツィート化してくれました:
N=noise
— ryotako (@ryotakob) May 19, 2020
def setup():size(500,500);noStroke()
def F(f,x,y):i=6*x+y;j=int(N(i)*3);fill(*[255,255,0,0,255][j:j+3]);rect((x+N(f,i))*80,(y+N(i,f))*80,N(i,f)*70+10,N(f,i)*70+10)
def draw():background(-1);[[F(frameCount*.1,x,y)for x in range(6)]for y in range(6)]#つぶやけたProcessing pic.twitter.com/OXpGFqV3Ow
ナイスアイデア!