2022/02/01 晴れ

1月は、#genuary2022(https://genuary.art/prompts)というデイリーコーディングイベントに参加していてたいへん楽しく過ごした。

1月が終わってしまうのが悲しいと思うくらい充実していた。
そして2月はPCDJapanの主催する#AltEdu2022に参加しようかなと思う。

短くて詩的な指示が並べられている様子が、オノヨーコのグレープフルーツジュースの様だな、と思った。
でも『グレープフルーツジュース』をちゃんと読んだことがないことに気づき、読んでみることにした。

『グレープフルーツジュース』は、『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)
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA