Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Processing入門

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 Processing入門

Avatar for ISHIGO Yusuke

ISHIGO Yusuke PRO

June 28, 2019
Tweet

More Decks by ISHIGO Yusuke

Other Decks in Education

Transcript

  1. 自己紹介 ੴڷ༞հ ISHIGO Yusuke 情報科学芸術大学院大学[IAMAS] Institute of Advanced Media Arts

    and Sciences 2012.4- 日本総合ビジネス専門学校 NIHON-CHUO Institution 2017.4- 合同会社4D Pocket 4D Pocket LLC. 2017.4-
  2. 変数を使ってみる 変数 データを入れるための箱 100 a = 100; a 変数の型 静的型付け言語の変数には型があり、変数を作る際には、入れるデータの種類によって

    型を決める必要がある。以下、基本的な型を挙げる。 int String double 整数型 実数型(倍精度浮動小数点数型) 文字列型 boolean 論理型(trueもしくはfalse) abc b = “abc”; b 文字列の場合は、ダブルクォーテーション 「”」で囲う
  3. 変数を使って四角を書いてみる int x = 50; int y = 50; int

    w = 200; int h = 200; size(640, 480); rect(x, y, w, h); 変数「y」に50を入れる 変数「x」に50を入れる 変数「h」に200を入れる 左上座標([x], [y])に幅[w]px、高さ[h]pxで四角を書く 変数「w」に200を入れる x、y、w、hをひとつずつ変更して、実行してみる
  4. 変数を使った計算方法 int w = 200; int h = 200; int

    x = 0; int y = 0; x = 640/2 - w/2; y = 480/2 - h/2; size(640, 480); rect(x, y, w, h); 変数「y」に0を入れる 480を2で割ったものを、hを2で割ったもので引く 変数「x」に0を入れる 変数の中身は、変更することもできる また、変更する際には、型を書く必要はない 640を2で割ったものを、wを2で割ったもので引く
  5. random関数を使って四角のサイズを変えてみる int w = (int)random(20, 200); int h = (int)random(20,

    200); int x = 0; int y = 0; x = 640/2 - w/2; y = 480/2 - h/2; size(640, 480); rect(x, y, w, h); 変数「y」に0を入れる 480を2で割ったものを、hを2で割ったもので引く 変数「x」に0を入れる 640を2で割ったものを、wを2で割ったもので引く 引数に指定した範囲の数をランダムに返す float random(low, high) 戻り値 第1引数 第2引数 20〜200の間の数をランダムに生成して変数「h」に入れる 20〜200の間の数をランダムに生成して変数「w」に入れる float random(high) 戻り値 第1引数 関数の定義によっては、変数を変えて呼び出すこともできる (関数のオーバロード) ramdonの戻り値の型は、float(実数型)だが、今回は整数値がほしいので、floatをintに変換 している(これを「キャスト」と言う)
  6. setup関数とdraw関数 void setup() { } 特定のイベント発生時に呼び出される関数がある (「1フレームに1回呼び出される」「マウスクリックで呼び出される」等) それぞれのイベントに合わせてプログラムを書いていく手法を「イベントドリブン」という void draw()

    { } setupは、起動時に1度だけ呼び出される (初期化処理) drawは、毎フレームごとに呼び出される デフォルトでは、FPS(Frame Per Second)は 60なので、1/60秒ごとに呼び出される (更新処理)
  7. 毎フレームごとに四角を書いてみる① void setup() { size(640, 480); } void draw() {

    int w = (int)random(20, 200); int h = (int)random(20, 200); int x = 0; int y = 0; x = 640/2 - w/2; y = 480/2 - h/2; rect(x, y, w, h); } ウィンドウサイズは、1度指定すれば良いので、setup関数内に書く
  8. 毎フレームごとに四角を書いてみる② void setup() { size(640, 480); } void draw() {

    background(204); int w = (int)random(20, 200); int h = (int)random(20, 200); int x = 0; int y = 0; x = 640/2 - w/2; y = 480/2 - h/2; rect(x, y, w, h); } backgroundを使って、塗りつぶし処理を入れる
  9. 条件式 分岐 条件によって、プログラムを分岐させる if (条件式) { } else { }

    条件に当てはまるときに、{}内が実行される > < <= >= && == != 値の大きさを比較 等しいか否か かつ || もしくは 条件式で使用する演算子 条件に当てはまらないときに{}内が実行される else{}は書かなくても良い
  10. 一定の大きさを超えた場合、色を変える void setup() { size(640, 480); frameRate(10); } void draw()

    { background(204); int w = (int)random(20, 200); int h = (int)random(20, 200); int x = 640/2 - w/2; int y = 480/2 - h/2; color c; if (w > 150 && h > 150) { c = color(255, 205, 213); } else { c = color(255, 255, 255); } fill(c); rect(x, y, w, h); }
  11. 繰り返し 反復 同じ処理をn回繰り返す for (初期化; 条件式; 更新) { } 条件式に当てはまる間、繰り返す

    void draw() { background(204); int w = 50; int h = 50; int y = 480/2 - h/2; for (int i = 0; i < 10; i++) { int x = i * w; rect(x, y, w, h); } }
  12. 配列 変数に番号を付けてまとめたもの a[0] a a[3] a[2] a[1] a[4] 0 1

    2 3 4 int[] a = new int[5]; a[0] = 12; a[1] = 34; a[2] = 56; a[3] = 78; a[4] = 90; 12 34 56 78 90 for (int i = 0; i < 5; i++) { println(a[i]); }
  13. バウンディングボックス int w = 50; int h = 50; int

    x = 0, y = 0; int vx = 0, vy = 0; void setup() { size(640, 480); } void draw() { background(204); x += vx; y += vy; if (x <= 0 || x >= width) { vx *= -1; } if (y <= 0 || y >= height) { vy *= -1; } rect(x, y, w, h); }