1月は、#genuary2022(https://genuary.art/prompts)というデイリーコーディングイベントに参加していてたいへん楽しく過ごした。
1月が終わってしまうのが悲しいと思うくらい充実していた。
そして2月はPCDJapanの主催する#AltEdu2022に参加しようかなと思う。
明日2/1(火)から開催される「#AltEdu2022」は2022年の2月中,毎日お題に合わせてクリエイティブコーディングに関わる活動をわいわい行う、コーディングチャレンジのお祭りです.毎日のお題はコチラ!https://t.co/bLzPfoLyqW pic.twitter.com/GTRdeT6rTT
— PCD Japan (@PCD_Tokyo) January 31, 2022
短くて詩的な指示が並べられている様子が、オノヨーコのグレープフルーツジュースの様だな、と思った。
でも『グレープフルーツジュース』をちゃんと読んだことがないことに気づき、読んでみることにした。
『グレープフルーツジュース』は、『Grapefruit』からの抜粋であった。印象がだいぶ違う。でも粋な題名の付け方だねえ、と思う。中身はしばらくのんびり味わおうと思う。なので燃やすのは当分先だよ。(『グレープフルーツジュース』の最後に"この本を燃やしなさい、読み終えたら。"とある)
1日目のPIECEは『画面の中心に円を描くところからコードを書いてください』
function setup() {
createCanvas(600, 600);
}
function draw() {
background("#f4f1de");
stroke("#355070");
push();
translate(width / 2, height / 2)
let d = width * 0.3
ellipse(0, 0, d, d)
pop();
}
何を書こうか思いつかない日は、いつもここからスタートしている。いつもの丸。今日は私だけでなく、参加者みんながこの丸からスタートするのかと思うと、すこしうれしい。この"うれしい"を細かく説明すると、他の人の存在が身近に感じられるような感覚をよろこんでいる。
グレープフルーツっぽいものを描きたいな、と思い、円に色を付けていく。
今日はちょっとくたびれているので、この辺で。
code:
//color palette by ( https://www.color-hex.com/color-palette/7400 )
let palette = ["#ffe88a", "#fbbe84", "#fda185", "#f97f69", "#ff5d5d"];
function setup() {
createCanvas(600, 600);
noStroke();
noLoop();
let col = color("#fbbe84")
col.setAlpha(60)
//軽くザラザラ感を出したいのでテクスチャをつくる
//texture refarence @sayama
pg = createGraphics(width, height);
pg.noStroke();
for (let i = 0; i < 100000; i++) {
let x = random(width);
let y = random(height);
let n = noise(x * 0.01, y * 0.01) * width * 0.002;
pg.fill(col);
pg.rect(x, y, n, n);
}
}
function draw() {
background("#e9dbce");
let shadow = color('#723d46');
shadow.setAlpha(30)
drawingContext.shadowOffsetX = 10;
drawingContext.shadowOffsetY = 10;
drawingContext.shadowBlur = 10;
drawingContext.shadowColor = shadow;
for (let i = 0; i < 500; i++) {
push();
//suffleでpalette配列の中身の順番を混ぜ混ぜ
//suffleはrandomSeedが効かないんだね〜noLoopにしないとビカビカしちゃうぜ〜
shuffle(palette, true);
let x = random(width);
let y = random(height);
let d = width * random(0.05, 0.3)
let hd = d / 2;
let d2 = random(1, 4)
translate(x, y)
push();
//gradient refarence @reona396 (http://blog.livedoor.jp/reona396/archives/55828329.html)
let gradientFill = drawingContext.createLinearGradient(
-hd,
-hd,
hd,
hd
);
gradientFill.addColorStop(0, color(palette[0]));
gradientFill.addColorStop(1, color(palette[1]));
drawingContext.fillStyle = gradientFill;
if (i % 2) {
//丸
ellipse(0, 0, d, d)
} else {
//点線の丸
for (let j = 0; j < TWO_PI; j += 0.1) {
let ex = d * sin(j)
let ey = d * cos(j)
ellipse(ex, ey, d2)
}
}
pop();
pop();
}
//setupで作ったテクスチャを最前面に表示する
image(pg, 0, 0)
}