Here you can find the source of hsvToRgb(float H, float S, float V)
public static String hsvToRgb(float H, float S, float V)
//package com.java2s; //License from project: Apache License public class Main { public static String hsvToRgb(float H, float S, float V) { float R, G, B; H /= 360f;//from w w w . java 2 s . co m S /= 100f; V /= 100f; if (S == 0) { R = V * 255; G = V * 255; B = V * 255; } else { float var_h = H * 6; if (var_h == 6) var_h = 0; // H must be < 1 int var_i = (int) Math.floor((double) var_h); // Or ... var_i = // floor( var_h ) float var_1 = V * (1 - S); float var_2 = V * (1 - S * (var_h - var_i)); float var_3 = V * (1 - S * (1 - (var_h - var_i))); float var_r; float var_g; float var_b; if (var_i == 0) { var_r = V; var_g = var_3; var_b = var_1; } else if (var_i == 1) { var_r = var_2; var_g = V; var_b = var_1; } else if (var_i == 2) { var_r = var_1; var_g = V; var_b = var_3; } else if (var_i == 3) { var_r = var_1; var_g = var_2; var_b = V; } else if (var_i == 4) { var_r = var_3; var_g = var_1; var_b = V; } else { var_r = V; var_g = var_1; var_b = var_2; } R = var_r * 255; // RGB results from 0 to 255 G = var_g * 255; B = var_b * 255; } String rs = Integer.toHexString((int) (R)); String gs = Integer.toHexString((int) (G)); String bs = Integer.toHexString((int) (B)); if (rs.length() == 1) rs = "0" + rs; if (gs.length() == 1) gs = "0" + gs; if (bs.length() == 1) bs = "0" + bs; return "#" + rs + gs + bs; } public final static String toHexString(java.awt.Color colour) throws NullPointerException { String hexColour = Integer.toHexString(colour.getRGB() & 0xffffff); if (hexColour.length() < 6) { hexColour = "000000".substring(0, 6 - hexColour.length()) + hexColour; } return "#" + hexColour; } }