Skip to content

Instantly share code, notes, and snippets.

@seraphy
Created July 26, 2012 10:01
Show Gist options
  • Save seraphy/3181319 to your computer and use it in GitHub Desktop.
Save seraphy/3181319 to your computer and use it in GitHub Desktop.
連続する数値から割り当てる色を算定する。 色相を1周7分割し、1周ごとに最大4周まで彩度・明度を暗くする。
/**
* 連続する数値から割り当てる色を算定する.<br>
* @param sequence シーケンス番号
* @return 割り当てられた色
*/
protected Color makeColor(int sequence) {
int pos = sequence % 7; // 色相を7分割で1周
int lev = sequence / 7; // 周数
lev = lev % 4; // 4段階以上は暗くせず、最初に戻る.
final float unit = 1.f / 7.f; // 色相の単位
float hue = 0.3f + (pos * unit) + (lev * 0.02f);
log.debug("makeColor pos=" + pos + "(" + hue + ")/lev=" + lev);
int rgb = Color.HSBtoRGB(
hue, // posで回りながらlevで1周ごとにずらす
1.f - lev * 0.2f, // 一周ごとに少し薄くする
1.f - lev * 0.2f // 一周ごとに少し暗くする
);
return new Color(rgb);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment