比較的シンプルな言語の記述で、イメージからアニメーションまでを描画することができるうえに、デバイスのコントロールまでも可能にするProcessingは、コードを書くことでデザインするための開発環境として、一部のデザイナーからメディアアーティストまで、強い支持を受けています。
HTML5の新要素として、HTMLで図形を描くことができる<canvas>が策定されました。その<canvas>を経由して、processingによる描画を実現したのが、Processing.jsです。JQueryの作者でもあるJohn Resig氏が公開したJavascriptライブラリで、通常ではJava Appletとしてブラウザで動かすしかなかったProcessingとほぼ同じ挙動を実現しています。
記述方法としては、まず<canvas>の中でProcessing.jsを稼働させるための準備をするJavaScriptを用意します。(右ソースコード参照)次に、<script id="processing-code" type="application/processing">と書き、そこにProcessingのコードを直に書くことができます。Processing上で確認して、最後にペーストするとよいでしょう。
IEは最新のバージョン8でも、<canvas>に対応していません。そこで、IEで<canvas>を使用するために、Googleが配布しているexcanvas.jsを利用します。これはIEのみで動作するjsライブラリで、それ以外のブラウザでは何もしません。
以下のように記述してください。
<script type="text/javascript" src="excanvas.js">
</script>
Processingでできることはだいたい可能ですが、注意点があります。
<script language="javascript"> window.onload = function() { var canvas = document.getElementsByTagName('canvas')[0]; // Processing のソースコードが書かれた script 要素 var codeElm = document.getElementById('processing-code'); // 要素の内容を取得 var code = codeElm.textContent || codeElm.innerText; Processing(canvas, code); }; </script>
<script id="processing-code" type="application/processing"> // Processing のソースコード float[][] distances; float maxDistance; size(1024,400); background(0); maxDistance = dist(width/100, height/100, width, height); distances = new float[width][height]; for(int i=0; i<height; i++) { for(int j=0; j<width; j++) { float d = dist(width/2, height/2, j, i); distances[j][i] = d/maxDistance * 255; } } for(int i=0; i<height; i+=2) { for(int j=0; j<width; j+=2) { stroke(distances[j][i]); point(j, i); } } //以下はFireFoxのみで有効 fill(#FFFFFF); PFont testfont = loadFont("Osaka"); textFont(testfont,48); </script>
<canvas width="1024" height="400"></canvas>