この記事を書いた人

- クリエイティブコーディングで制作した作品と、上達のためにやったこと・学習過程を発信
- コンセプトは「クリエイティブコーディング1万時間の歩き方」
- 2024年にProcessingの構文のアウトプットを終え、2025年から作品制作開始(クリエイティブコーディングで作成した作品集)
目次
reona396様のLinesをForkさせていただき、つくった作品【画像とアニメーションとコード】

アニメーション。
// reona396様の作品 Lines のFork
// https://openprocessing.org/sketch/918484
const palette = ["#ff595e","#ffca3a","#8ac926","#1982c4","#6a4c93"];
let lines = [];
let linesNum = 60;
const DIST = 10;
let MAX;
const GEN = 40;
let stColor;
function setup() {
createCanvas(windowWidth, windowHeight);
angleMode(DEGREES);
MAX = width > height ? width : height;
stColor = "#ffca3a";
for (let i = 0; i < linesNum; i++) {
lines.push(new MyLine());
}
}
function draw() {
background(255);
noStroke();
for (let i = 0; i < lines.length; i++) {
push();
translate(width / 2, height + 10);
rotate(360 * i / lines.length);
lines[i].display();
pop();
}
fill(255);
stroke(stColor);
strokeWeight(15);
circle(width / 2, height + 10, MAX * 0.5);
}
class MyLine {
constructor() {
this.objs = [];
this.speed = random(5, 10);
this.h = random(10, 20);
}
display() {
if (random(100) < GEN) {
if ((this.objs.length == 0) ||
(this.objs.length > 0 && this.objs[this.objs.length - 1].hasDistance())) {
this.objs.push(new Obj(this.speed, this.h));
}
}
for (let i = 0; i < this.objs.length; i++) {
this.objs[i].move();
this.objs[i].display();
}
if (this.objs.length > 0) {
for (let j = this.objs.length - 1; j >= 0; j--) {
if (this.objs[j].isFinished()) {
this.objs.splice(j, 1);
}
}
}
}
}
class Obj {
constructor(tmpSpeed, tmpH) {
this.x = 0;
this.y = 0;
this.speed = tmpSpeed;
this.w = random(20, 100);
this.h = tmpH;
this.c = color(random(palette));
}
move() {
this.x -= this.speed;
}
isFinished() {
if (this.x < -MAX * 1 - this.w) {
return true;
} else {
return false;
}
}
hasDistance() {
if (this.x < -(this.w + DIST)) {
return true;
} else {
return false;
}
}
display() {
fill(this.c);
rect(this.x, this.y, this.w, this.h, this.h / 2);
}
}
作った感想
reona396様のクリエイティブコーディングに関しての書籍を読み、ご本人のOpenProcessingの作品を見てForkしたいと思った作品。
本からもかなり学ばさせていただきました。
- 【読んだ本の効果】2時間でクリエイティブコーダーになる本 技術の泉シリーズ【三角関数の理解が深まりました】
- 【読んだ本の効果】チャットAIよ、この世で一番美しいデジタルアートを創造せよ! ChatGPTとBingで生成するコードとアート
- 【読んだ本の効果】クリエイティブコーディングの参考書【自身の課題は何なのかを考えやすくなり、どのように勉強していくのか見えやすくなった】
時間をかけ、コードの構成などを分析しつつ、僕なりに変えてみました。
「クラスの中から新しいクラスをつくることができるんだ!」
「MAX = width > height ? width : height;
のような三項演算子を使った書き方もできるんだ!」
と思いながら、じっくり分析し、自分なりの表現にしてみました。
つくった作品数もまだ25個くらいで、クラスを使った表現にも慣れていないので分析は大変でしたが、自分なりのイメージに変更できて嬉しかったです。
まだまだコーディングに慣れていないので、たくさん見て、写経して、今回ForkさせていただきたLinesのようなコーディングができるように頑張ります。

それでは今日もレッツワクワクコーディング。