Hue Circle

huecircle.jpg

というわけで、Java で色相環を描いてみた。(1h)

ぐるり一周したところで、境界線が出てしまっているのが残念。色相角度の値を 1/360 ずつ加算して一周させたんだけど、float型の計算でどうしても誤差が出てしまう。計算部分の実装をうまく考えれば、もうちょっと精度を上げられそう。

今回、久しぶりに Applet を書いたんだけど、これまで気が付かなかった面白さを感じてしまった。ActionScript も良いけど、やっぱ Java ですよ、奥さん。そんなわけで、今さらハマりそうな予感。( processing でも良いんだけどね)

とりあえず、ソース。

Color c = new Color(0xff0000);

public void paint(Graphics g) { // 一度に回転する角度 int eachAngle = 1;
// 幅、高さ int width = 360; int height = 360;
float[] hsb; for (int i = 0; i < 360; i += eachAngle) { // 色変換 hsb = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null); hsb[0] += (float) eachAngle / 360; c = Color.getHSBColor(hsb[0], hsb[1], hsb[2]);
// 描画 g.setColor(c); g.fillArc(20, 20, width - 1, height - 1, i, eachAngle); } }

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/237