7
6

More than 5 years have passed since last update.

Processingの基本文法まとめ

Posted at

processingの基本文法まとめ

大学の授業でProcessingを扱っており、テスト対策のために文法を煩雑ですがまとめましたので、誰かのお役に立てればと思いあげておきます。

基本文法

関数の定義

戻り値の型 関数名(仮引数の宣言){
処理
return文(戻り値)
}

画面サイズを決定する
size(x, y);

コメント

  1. その行のみ

// コメント

  1. 内部全体 /* コメント */

変数の型

int 整数
double, float 小数
bool 真偽値
color 色データ
String 文字列

キャスト

a = (型) 式

繰り返し

for( 初期化の式1; 繰り返すかどうか調べる式2; 変化のための式3){
  繰り返す処理;
}

while( 繰り返すかどうか調べる式){
  繰り返す処理;
}

do{
  最低1回は処理し,繰り返す処理;
} while( 繰り返すかどうか調べる式);

ランダム

random(最大値)
random(最低値, 最大値)
random() 0以上1未満で乱数を発生

2点間の距離を求める

dist(x1, y1, x2, y2)

map関数

map(a, b, c, d, e) //aを範囲b-cから別の範囲d-eへ変換する

演算子

記号 名前
+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
%= 剰余代入

インクリメント演算子

++a  // a=a+1のこと
b = ++a //a=a+1, b=a のこと。先にインクリメントする(a=3の時、b=4となる)
b = a++ // b=a, a=a+1 のこと。 代入後にインクリメントする(a=3の時、b=3となる)

絵画関数

線を描く

 line(始点のx座標, 始点のy座標, 終点のx座標,終点のy座標); 

点を描く

point(x座標, y座標);

矩形(長方形、正方形)を描く

rect(左上角のx座標, 左上角のy座標, 矩形の幅, 矩形の高さ);

※[rect()関数の座標指定方法の変更]

rectMode(CORNER); → 左上角の座標で指定(指定なしと同様)
rectMode(CENTER); → 中心の座標で指定

四辺形を描く

quad(点1のx座標, 点1のy座標,点2のx座標, 点2のy座標,点3のx座標, 点3のy座標,点4のx座標, 点4のy座標);

三角形を描く

triangle(角1のx座標, 角1のy座標,角2のx座標, 角2のy座標,角3のx座標, 角3のy座標);

円を描く

ellipse(中心のx座標, 中心のy座標, 楕円の幅, 楕円の高さ);

弧を描く

arc(中心x座標, 中心y座標, 幅, 高さ, 始まり角度,終わり角度);

曲線を描く

bezier(点1のx座標(x1), 点1のy座標(y1),制御点1のx座標(cx1), 制御点1のy座標(cy1),制御点2のx座標(cx2), 制御点2のy座標(cy2),点2のx座標(x2), 点2のy座標(y2));

点を打って繋げる

beginShape();
vertex(点のx座標,点のy座標)
curveVertex(点のx座標,点のy座標)
endShape(CLOSE);
endShape();

色をつける
(グレースケール・RGB・HSBが使える)

  1. 背景に色を付ける background(選択したい色);
  2. 縁の色を指定する stroke(選択したい色);
  3. 塗りつぶしの色を指定する fill(選択したい色);

色の取り消しと線の太さ

  1. 線を取り消す noStroke()
  2. 線の太さを指定 strokeWeight()
  3. 塗りつぶしをなくす(線だけ表示) noFill()

色の各値の最大値を指定

colorMode(RGB, 255); //RGBの各値の最大値を255に設定
colorMode(HSB, 360, 100, 100); //HSBの各値の最大値を、H360,S100,B100に設定

文字を書く

text("文字列", x, y)

文字の大きさなど

//文字の大きさ
textSize(大きさ)
textAlign(文字の位置)

移動系

座標移動

translate(x軸方向の移動量, y軸方向の移動量);

座標回転

rotate(角度のラジアン値);
rotate(radians(角度));

座標系を保存する

pushMatrix(); 座標系を保存
popMatrix(); 座標系を取り出す

アニメーション

基本関数

void setup() {  
  一度だけ実行される
}

void draw() {
  停止するまで繰り返される
}

フレームレート

frameRate(フレーム数)

イベントハンドラ

マウスを追跡

//現在のマウスの位置
mouseX, mouseY

//一つ前のフレームのマウスの位置
pmouseX, pmouseY

マウスをクリック

mousePressed

//押されたボタンを判別
mouseButton == LEFT //(LEFT, CENTER, RIGHT)

キーを押す

keyPressed //キーが押されているときだけtrue
keyReleased //キーを話しているときだけtrue

//最も新しく押されたキーを判別する変数
Key == 'n' 

//カーソルキーを判別
keyCode == LEFT // (UP,DOWN,LEFT,RIGHT,ALT,CONTROL,SHIFT)

クラスなど

クラスの定義

class クラス名 {
  処理
}

イニシャライザ(コンストラクタ)

コンストラクタ名 (引数){
  ステートメント;
}

オブジェクト変数の宣言

クラス名 変数名; //参照型の変数の型という
変数名 = new コンストラクタ名(引数) //newを使ってインスタンスを初期化する

画像の利用

PImage 変数名;
変数名 = loadImage("画像URL");
image(変数名, x座標, y座標);

//svgの場合はこれ
loadShape("URL.svg");

//スケッチフォルダーの中に「data」というファイルがあるのでそこに入れる

CSVファイルの読み込み

loadStrings("ファイル名");
data = int(split(temp[0], ",")); //データをコンマdで分割して配列dataに代入

画像の書き出し

// 現在のウィンドウを画像として書きだす
save(ファイル名を指定); //.png, .jpg, .tif に対応 
saveFrame()

ファイル出力

saveStrings("ファイル名", data);

3DCG

3Dライブラリ

P3D
OpenGL

import processing.opengl.*;

3次元座標系

size(x座標, y座標, P3D);

描画

sphere(半径) //星を作成
vertex(

照明

ambientLight() – 環境光源
directionalLight() –指向性光源
pointLight() – 点光源
spotLight() – スポットライト,スポット光源

カメラ

camera(mouseX, mouseY, 200,          //Camera location
       width/2.0, height/2.0, 0,     //Camera target
       0, 1, 0);                     //Camera orientation
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6