dT*blog

design and programming

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); } }

Posted by dT by 15:02

トラックバック

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

コメント




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30