最近では、テレビゲームなどで 3 次元のグラフィックスが多様され、日常生活で当り前のようにコンピュータグラフィックスが 使われるようになった。しかし,その原理は非常に単純な計算である。 高校数学で習った三角関数や行列の演算を使えば簡単に求めることができる。 最初に2 次元の回転の行列を使って見よう。 座標平面上の点 (x1,y1) をαラジアン回転した点の座標を (x2,y2) とする。
これを回転行列を使って表すと,
となる.この点を 2 つ用意して,それらをつなぐ線分を表示すれば, 線分を回転することができる.回転の部分のプログラムは,以下のようになる.
public void Rotate() { xt=x1*Math.cos(alpha)-y1*Math.sin(alpha); yt=x1*Math.sin(alpha)+y1*Math.cos(alpha); x1=xt; y1=yt; xt=x2*Math.cos(alpha)-y2*Math.sin(alpha); yt=x2*Math.sin(alpha)+y2*Math.cos(alpha); x2=xt; y2=yt; }
これを実行すると,以下のようになる.
ソースコードは以下のようになる.
その他 Sample1.html は
<applet code="Sample1.class" width=400 height=400></applet>
とすればよい.
以下Sample?.html は、上の Sample1.class を Sample?.class に変更したファイルである。