インスタなどショート動画で数学的に美しい映像を見て、自分も作ってみたいと思うようになりました。
そこで調べてみるとProcessingというプログラミング(?)をすることで作れそうでした。
そこで今回から英語の勉強と、文章を書く練習としてProcessingの英語の公式サイトを訳していこうと思います。
7割翻訳、3割感想や自分なりの解説を目指します。
今回の参考ページは以下になります。
Color
An introduction to digital color.
オブジェクト思考
オブジェクト思考は、なかなか難しい概念です。
これを読んでいる、あなたを主人公にして説明していきます。
あなたは人とは違う見た目をしていますが、寝たり、食べたりは同じ行動をすることができます。
つまりあなたは、「あなた」である前に「人間」であるのです。
ということで人それぞれ異なるデータと、皆共通して行う行動があります。
人それぞれ異なるデータ
- 性別
- 身長
- 髪色
- などなど
共通して行う行動
- 睡眠
- 起床
- 食事
- などなど
上の例はシンプルな箇条書きですが、それぞれのデータ・行動が人間にテンプレートとして備わっています。
オブジェクト思考では、上の例でいう「人間」がクラス、「あなた」がオブジェクトです。
つまりこれを書いている「私」もオブジェクト、「スティーブ・ジョブズ」もオブジェクトです。
オブジェクト思考でクラスを作ってみる
上の「人間」の例でやってみます。
まずはクラスを定義します。
定義に必要なのは
- クラス名
- 変数(人それぞれ異なる情報)
- コンストラクタ(必ず最初に呼び出され初期化などを行う関数)
- 関数(共通して行う処理)
変数と関数は上の例で確認しました。
コンストラクタは、新しいオブジェクトを作った時に情報を初期化する部分です。例えば、人間が生まれた時点での性格、身長、体重などを書き込む部分です。
オブジェクト思考でオブジェクトを作ってみる
- まずはオブジェクト変数を宣言する。
- オブジェクトを初期化する。
- オブジェクトを使用する。
例をコードで見てみる
例では長方形を車に見立てています。できるだけコメントで解説しております。
Car myCar1;
Car myCar2; // 1, まずはオブジェクト変数を宣言する。
void setup() {
size(200,200);
// 2, オブジェクトを初期化する。パラメータは括弧の中に入れる。
myCar1 = new Car(color(255,0,0),0,100,2);
myCar2 = new Car(color(0,0,255),0,10,1);
}
void draw() {
background(255);
// 3, オブジェクトを使用する。
myCar1.drive();
myCar1.display();
myCar2.drive();
myCar2.display();
}
//以下でクラスの作成。
// 1つのオブジェクトから複数のオブジェクトを作ることができる。
//まずはクラス名の宣言(Carの部分)
class Car {
//変数の宣言
color c;
float xpos;
float ypos;
float xspeed;
// コンストラクタ(クラス名と同じにするのが普通)
Car(color tempC, float tempXpos, float tempYpos, float tempXspeed) {
//各変数の初期化
c = tempC;
xpos = tempXpos;
ypos = tempYpos;
xspeed = tempXspeed;
}
//以下、関数
void display() {
stroke(0);
fill(c);
rectMode(CENTER);
rect(xpos,ypos,20,10);
}
void drive() {
xpos = xpos + xspeed;
if (xpos > width) {
xpos = 0;
}
}
}
まとめ
embark…乗船する
nerdy…オタクっぽい男性
do stuff…何かをする
コメント