パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

ProcessingでJava学習 ポリゴンの箱をまわす(Processingだとまあ簡単)

2019-07-10 | プログラムをマスター計画2020

ブログの記事からだと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

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。