見出し画像

AltEdu2022 Day7の解説記事

今日のテーマは全画面でアニメーションするコードを書いてみてください。完成したらしばらく表示してみてくださいでした。
コードのライセンスはCC BY-NC-SA 3.0です。
実装した成果物は以下にあります。

デモは以下にあります。

今回はWebGLモードで作成しました。circleの大きさを少しづつ変化させて回転するアニメーションを作成しました。

const divValue = 3;
const radius = 5;
const shiftX = radius;
const multi = 30;
const frameCount = p.frameCount * 0.005;
const scaleMax = 10;
p.push();
p.beginShape();
p.translate(0, 0, 0);
[...Array(DEGREE_MAX).keys()].forEach((degree) => {
  [...Array(scaleMax).keys()].forEach((scale) => {
    if (degree % divValue === 0) {
      const radian = degTorad(degree);
      const position = p.createVector(
        p.cos(radian * frameCount) * scale * multi,
        p.sin(radian * frameCount) * scale * multi,
        0
        );
      const radianMulti = 10;
      const radius2 = radius * Math.cos(radian * radianMulti) + shiftX;
      p.push();
      p.fill(p.color(scale * 30, scale * 30, 250, 200));
      p.ellipse(position.x, position.y, radius2, radius2);
      p.pop();
    }
  });
});
p.endShape();
p.pop();

本日は以上です。

この記事が気に入ったらサポートをしてみませんか?