![見出し画像](https://assets.st-note.com/production/uploads/images/72855804/rectangle_large_type_2_9903ac9251d1fc5ce1b2ead81b4df43f.png?width=1200)
ジェネラティブアート作成時の頭のなか #AltEdu2022 23 日目
本日のお題は、おやつやお茶を食べたり飲んだりしての感想をコードで表す - とのこと。
明日2/1(火)から開催される「#AltEdu2022」は2022年の2月中,毎日お題に合わせてクリエイティブコーディングに関わる活動をわいわい行う、コーディングチャレンジのお祭りです.毎日のお題はコチラ!https://t.co/bLzPfoLyqW pic.twitter.com/GTRdeT6rTT
— Processing Community Japan (@PCD_Tokyo) January 31, 2022
今日は天皇誕生日で祝日ではあるのだが、年度末が近いこともあり、今日も休日出勤しなければならなそうだ。こんな状況なので、おやつを食べながらコードを書く時間はとれそうにない。なので、朝食を摂っている今、先日食べたおやつを思い出しながらコードを書いてみようと思う。ちなみに朝食はトーストに苺ジャムなので、これ自体がおやつみたいなものではある。でもまあ、それはそれとして。
先日、久しぶりにコンビニでおやつを買って食べた。バタービスケットサンド あまおう苺、である。価格は 230 円。なかなか良いお値段である。同じ金額で、地酒の旨いワンカップが買えてしまう。
今日はこれを題材としてコードを書いてみる。ふと思い浮かんだのは、白地に赤色の多角形が埋もれているものであった。なんだか昔あった宝石箱というアイスのようである。
「宝石箱 アイス」などと検索していると、妻がやってきて、宝石箱!と何やら少々興奮気味である。ひとしきり、アイス宝石箱の話題で盛り上がる。ネットを検索していると、このアイスは宝石をプレゼントとするというキャンペーンを展開していたようだ。そのページをみていると「私、もらった事がある!」等と言い出す。赤いやつだった、とのこと。ルビーだろうか。兎に角、なかなか体験できることではない。しかし、それにしては、ルビーなんか我が家にあったっけか。
「ルビー持ってたの?」
と素朴に聞きつつ、当時プレゼントされていたであろう宝石の画像をみせると、「全然ちがう」とのこと。どうやら、全く別のキャンペーンでもらったおもちゃと勘違いしていたようである。そりゃそうだ、今も昔も、宝石はなかなかもらえるものではない。
ちなみに、アイス談義のついでにドラキュラアイスなるものについても妻から教えてもらう。なんでも食べると舌が赤くなるそうだ。これも検索してみると、ドラキュラアイスではなくクロキュラーという名前であった。我が家の日常である。妻が微妙に間違えた言葉を言い、私がそれに振り回される。人間版 Google の「もしかして○○?」である。
アイスについて、ひととおり話すと妻は台所に行ってしまった。気を取り直して私は食卓でコードを書く。様々な角度の正三角形を描くコードを作ってみる。円周上に三角形の頂点を描くので sin, cos が必要となるが sin(x)=cos(x+PI/2) を利用して cos のみで計算している。文字数削減に役にたつのかどうかは分からないが、#つぶやきProcessing 化を視野に入れて、とりあえず仕込んでおく:
size(500,500)
r=100
t=TAU/3
a=[0,PI/2]
p=[300,200]
s=random(1)
triangle(*[r*cos(i//2*t+a[i%2]+s)+p[i%2] for i in range(6)])
![](https://assets.st-note.com/img/1645584189535-OOFrZJzpfq.png?width=1200)
関数化も考慮し、パラメータを用いて書いてみた。
描画部分を関数として取り出し、ランダムに描いてみる。食べたのはビスケットだったので画像も少し横長にしてみる:
def T(x,y):
t=TAU/3
a=[0,PI/2]
p=[x,y]
r=random(5)+1
s=random(1)
triangle(*[r*cos(i//2*t+a[i%2]+s)+p[i%2] for i in range(6)])
size(500,300)
background(-9)
noStroke()
for i in range(100*60):
fill(255,random(50),random(100),random(150))
T(i%100*5+random(10),i//100*5+random(10))
![](https://assets.st-note.com/img/1645585394193-mnacOEX5u8.png?width=1200)
なかなか良い感じであるので、これを #つぶやきProcessing 化してみる。random 関数の使用頻度が高いので、R=random としつつ、その他、1 度しか使っていない変数は使用している場所にインライン展開しつつ、インデントの除去をして tweet 欄に貼り付けてみる。
#つぶやきProcessing#AltEdu2022
— Koji Saito (@KojiSaito) February 23, 2022
R=random
def T(x,y):
p=[x,y];r=R(5)+1;s=R(1)
triangle(*[r*cos(i//2*TAU/3+[0,PI/2][i%2]+s)+p[i%2] for i in range(6)])
size(500,300)
background(-9)
noStroke()
for i in range(100*60):
fill(255,R(50),R(100),R(150));T(i%100*5+R(10),i//100*5+R(10)) pic.twitter.com/7bNTqUVGVS
100 を 99 等に調整することもなく無事 tweet できた。朝食もすっかり食べ終わったので、そろそろ仕事場に出かけようと思う。
ちなみに今日の作品を妻にみせたところ「よくある(模様)じゃん」とのことであった。文字数の少ないプログラムが生成することなど、関係ないのである。多分、これが多くの人の感想なのであろう。