グラフィック系Java Appletを簡単に作ることのできるProcessingという言語のベータ版が公開されています。ウェブ・グラフィック用のツールとしてはFlashがメジャーですが、Flashはベクター・グラフィックは得意なものの、三次元データの扱いが難しかったり、ピクセル・グラフィックが使えなかったり、けっこう制約もありました。Processingでは基本的にJava Appletでできるものはすべてできますし、アカデミア(MIT Media Lab)から出てきたツールだというのが僕には好印象でした。 グラフィック・アートをやるひとが多いみたいですが、コンピュータと対戦できるチェス・プログラムを作った人もいますし、AJAX的にビジネス用途に使うのも良いかもしれませんね。 ==== 下のグラフィックはProcessingのデモプログラムとして用意されている、マウス操作によって回転するカラーキューブです。このくらいのものであればプログラム本体は本当に短いのです。
ソースコードはこんなかんじ。
// RGB Cube // by fry <http://benfry.com> // The three primary colors of the additive color model are red, green, and blue. // This RGB color cube displays smooth transitions between these colors. // Created 25 October 2002 float xmag, ymag = 0; float newXmag, newYmag = 0; void setup() { size(200, 200, P3D); noStroke(); colorMode(RGB, 1); } void draw() { background(0.5, 0.5, 0.45); pushMatrix(); translate(width/2, height/2, -30); newXmag = mouseX/float(width) * TWO_PI; newYmag = mouseY/float(height) * TWO_PI; float diff = xmag-newXmag; if (abs(diff) > 0.01) { xmag -= diff/4.0; } diff = ymag-newYmag; if (abs(diff) > 0.01) { ymag -= diff/4.0; } rotateX(-ymag); rotateY(-xmag); scale(50); beginShape(QUADS); fill(0, 1, 1); vertex(-1, 1, 1); fill(1, 1, 1); vertex( 1, 1, 1); fill(1, 0, 1); vertex( 1, -1, 1); fill(0, 0, 1); vertex(-1, -1, 1); fill(1, 1, 1); vertex( 1, 1, 1); fill(1, 1, 0); vertex( 1, 1, -1); fill(1, 0, 0); vertex( 1, -1, -1); fill(1, 0, 1); vertex( 1, -1, 1); fill(1, 1, 0); vertex( 1, 1, -1); fill(0, 1, 0); vertex(-1, 1, -1); fill(0, 0, 0); vertex(-1, -1, -1); fill(1, 0, 0); vertex( 1, -1, -1); fill(0, 1, 0); vertex(-1, 1, -1); fill(0, 1, 1); vertex(-1, 1, 1); fill(0, 0, 1); vertex(-1, -1, 1); fill(0, 0, 0); vertex(-1, -1, -1); fill(0, 1, 0); vertex(-1, 1, -1); fill(1, 1, 0); vertex( 1, 1, -1); fill(1, 1, 1); vertex( 1, 1, 1); fill(0, 1, 1); vertex(-1, 1, 1); fill(0, 0, 0); vertex(-1, -1, -1); fill(1, 0, 0); vertex( 1, -1, -1); fill(1, 0, 1); vertex( 1, -1, 1); fill(0, 0, 1); vertex(-1, -1, 1); endShape(); popMatrix(); }