Processing
Processing(プロセシング)は、ケイシー・リース(Casey Reas)とベンジャミン・フライ(Benjamin Fry)によるオープンソースプロジェクトであり、かつてはMITメディアラボで開発されていた。電子アートとビジュアルデザインのためのプログラミング言語であり、統合開発環境(IDE)である。アーティストによるコンテンツ制作作業のために、詳細な設定を行う関数を排除している。 視覚的なフィードバックが即座に得られるため、初心者がプログラミングを学習するのに適しており、電子スケッチブックの基盤としても利用できる。Java を単純化し、グラフィック機能に特化した言語といえる。
Processingのロゴ | |
パラダイム | オブジェクト指向 |
---|---|
登場時期 | 2001年 |
設計者 | ケイシー・リース、ベンジャミン・フライ |
最新リリース | 4.3[1] - 2023年7月26日 [±][+/−] |
型付け | 強い型付け |
影響を受けた言語 | Design by Numbers |
プラットフォーム | クロスプラットフォーム |
ライセンス | GPL と LGPL |
ウェブサイト |
processing |
機能 編集
Processing には
Processing でのプログラミングでは、全ての定義されたクラスは Java の内部クラスのコードとして扱われ、コンパイルされる。すなわち、クラス内の静的変数や静的メソッドは通常禁じられており、それらを使うにはユーザーが明示的に純粋Javaモードを指定しなければならない。
GPUドライバが提供するAPIが簡略化されてProcessingのAPIとして提供されているため、高度な表現を行う場合には不便に感じやすい。例えば、OpenGLで標準的にサポートされている環境マッピングが、APIとして提供されていないため、独自に実装する必要がある等である。
作成したプログラムをアプリケーションとしてエクスポートすることができる。また、processing.jsの機能を用いればネット上でコードの実行結果が見られる。
プログラム例 編集
Hello World 編集
println("Hello World!");
上記も正しいプログラムだが、次のようなコードの方がProcessingの雰囲気をよく表している。
text("Hello World!", 20,50);
図形を描く 編集
rect(20, 20, 100, 80);//四角形
ellipse(140, 140, 40, 50);//楕円
日本地図の塗り分け 編集
ウィキメディアのSVG形式の日本地図の白地図を読み込み、Prefectures
という配列に記述された番号の県のみ塗り分けるプログラム。英語版の例のように地図データが各県ごとにname
を持っていれば県名で指定することも可能である。
PShape japan;
float map_scale=0.25;
int square_len=512;
int [] Prefectures={2,3,5,7,11,13,17,19,23,29,31,37,41,43}; // Prime numbers
void setup() {
japan=loadShape("https://upload.wikimedia.org/wikipedia/commons/5/56/Blank_map_of_Japan.svg");
size(square_len,square_len);
smooth();
noLoop();
}
void draw() {
background(color(0, 0, 255)); // blue
japan.disableStyle();
japan.getChild("ground").getChild(0).scale(map_scale);
fill(color(255, 255, 0)); // yellow
shape(japan.getChild("ground").getChild(0), square_len * map_scale, square_len * map_scale);
prefecturesColoring(japan ,Prefectures , color(255, 0, 255), map_scale); // magenta
saveFrame("map output.png");
}
void prefecturesColoring(PShape nation, int[] prefectures, int c, float n){
for (int i=0; i < prefectures.length; i++) {
PShape prefecture=nation.getChild("ground").getChild(0).getChild(prefectures[i]);
prefecture.disableStyle(); // Disable the colors found in the SVG file
prefecture.scale(n);
fill(c); // Set our own coloring
noStroke();
shape(prefecture, square_len * map_scale, square_len * map_scale); // Draw a single prefecture
}
}
関連プロジェクト 編集
Processing から派生したプロジェクトとして
受賞 編集
2005年、リースとフライは Processing に関する業績により、アルス・エレクトロニカのゴールデン・ニカ賞(ネットビジョン部門)を受賞した。
ライセンス 編集
統合開発環境は GPL の条件で公開されている。
アプリケーションやアプレットに含まれるライブラリコードは LGPL の条件で提供、開発したプログラムは任意のライセンスで活用可能である。
名前 編集
もともとリースとフライは processing.org が取得されていたため proce55ing.org というドメインを用いたが、しばらくして processing.org を取得した。proce55ing.org から取られた p5 という略称は、名前が変わったにもかかわらずときおり用いられる。
バージョン 編集
関連項目 編集
- Processing.js - ブラウザ上で動かすためのJavaScriptライブラリ
- openFrameworks
- cinder
外部リンク 編集
- 公式ウェブサイト
- Processing Foundation
- processing4 - GitHub
- Processing Foundation (page.processing) - Facebook
- Processing Foundation (@ProcessingOrg) - Medium
- processingorg (@processingorg) - Instagram
- processingorg (@processingorg) - X(旧Twitter)
- Processing - YouTubeチャンネル
- Processing Foundation - Vimeo
- processinghacks.com
- Processing Blogs
- processing.js
- p5js.org
- ^ "Processing is open source and is available for macOS, Windows, and Linux."; 閲覧日: 2023年8月15日; 出版日: 2023年7月26日.