ブログの記事からだと2年ぶり、時が立つのは速い。
Processingでちょっとやってみたいことがあってversion 3.5.3をダウンロード
解凍してprocessing-3.5.3のフォルダーを端末で開く
端末で
./processing
Enterで起動
これだけで開発環境が完成!
かなり汎用的なプログラムも作れるはずなんんだけど、
ビジュアライザーとしてのみ、みたいな記事も多くて、そういった認知のされ方をしてしまったのが本当に不遇な気がしている。
この子はすごいできる子なのに。
どんなのだったかまあ忘れているのでExamplesをかたっぱしから開いてみる。
Examplesの量が多く、フォルダー分けもされている。どこからみたらいいのやら。
Formフォルダ内のPrimitives3D
これだけの行数で上の画像を表示します。
これを少しアニメーションさせてみたくなって
Math Noise3D
こんな雲のようなノイズを繰り返し書く
そうそうsetup()で初期化処理を書いて、draw()が繰り返し呼び出されるシステムだったと思い出す。
少しインタラクティブに動かしたいのでKey操作を復習
input keyboard
そしてプログラムが完成
x,yボタンで回転x軸、y軸の回転を反転させます。
両方行っているので、わかりにくいかもしれません。
Processing JavaからPythonへ移植
<ソース Java>
float rx = 0.0;
float ry = 0.0;
float dx = 0.1;
float dy = 0.1;
int bSize = 10;
int db = 5;
void setup() {
size(900, 360, P3D);
frameRate(30);
}
void draw() {
rx = rx + dx;
ry = ry + dy;
bSize = bSize + db;
if (bSize > 100)db = -2;
if (bSize < 50)db = 5;
background(0);
lights();
noStroke();
for (int i = 0; i < 7; i ++){
pushMatrix();
translate(130*i, height/2, 0);
rotateY(ry);
rotateX(rx);
box(bSize);
popMatrix();
}
}
void keyPressed() {
if (key == 'x') {
dx = dx * -1;
}
if (key == 'y') {
dy = dy * -1;
}
}
<ソース Python>
rx = 0.0
ry = 0.0
dx = 0.1
dy = 0.1
bSize = 10
db = 5
def setup():
size(900, 360, P3D)
frameRate(30)
def draw():
global rx,ry,dx,dy,bSize,db
rx = rx + dx
ry = ry + dy
bSize = bSize + db
if bSize > 100:db = -2
if bSize < 50:db = 5
background(0)
lights()
noStroke()
for i in range(7):
pushMatrix()
translate(130*i, height/2, 0)
rotateY(ry)
rotateX(rx)
box(bSize)
popMatrix()
def keyPressed():
global dx,dy
if key == 'x': dx = dx * -1
if key == 'y': dy = dy * -1