目次JavaプログラミングJDK1.0での制作事例








このアプレットは円の幾何学模様を描くアプレットです。
これはあまり実用的ではないかも知れませんが、
面白いので練習のために作成しました。

このアプレットを作成するときのポイントは
線を引く開始点と終了点を求める時に三角関数を計算するための
Math.cosおよびMath.sinオブジェクトを使用することです。
それと線の色を決めるためのMath.randomオブジェクトを使用し、
乱数によりランダムに色を発生させています。
ですから、何色で描けるかはその時々で異なります。

描いている状況が目で見て分かるように線を引く時間間隔を開けています。

機能としては以下のようになっています。
入力パラメータは極力少なくしています。

描く円の半径を指定できます。
描くノード数を指定できます。

以下の機能は入力の繁雑を避けるため固定としています。
ソースを変えれば変更可能です。

背景色は白に固定しています。
線を描く時間間隔は20mSECに設定しています。(PCの性能で異なる)
線の色は乱数によりランダムに決定しています。
一つの色の表示が終わり次の表示に移る時間は2秒に設定しています。
表示する位置は自動計算し、表示エリアの中央にしています。
表示しきれないサイズの円の場合には左端または上端を固定しています。

Diamond.classのサイズは3.00KBとなりました。

 HTMLでの指定方法

 ソースプログラムリスト


試験をしてみると処理タイミングによって線の描画がスキップされる(前の線の色が残る)場合があります。
runメソッドからpaintメソッドが起動されるときに抜けてしまうため?
また、IE3.0およびIE4.0では上のケースはあるにしても全ての線が描画されますが、
NN3.0、NN4.0では一番最初に描く線(最右端の点からすぐ下側の点への線)が描かれません。
何故ですかね?
私のバグ? NNのバグ?
runメソッドとpaintメソッドの組み合わせでこのような処理をさせるのは
間違いなのかも知れません。
または、二度書きする?


ソースプログラムリストはメモ帳などにコピーして利用することができます。

コピー方法