17/12/27 01:19:30.81 2+M/n1Lm.net
public static void HSV(int R, int G, int B, out int H, out int S, out int V){
int Max = Mathf.Max (R, G, B);
int Min = Mathf.Min (R, G, B);
if (Max == Min) {
H = 360;
} else if (G == Max) {
H = 60 * (B - R) / (Max - Min) + 120;
} else if (B == Max) {
H = 60 * (R - G) / (Max - Min) + 240;
} else {
H = 60 * (G - B) / (Max - Min);
if (H < 0) H = H + 360;
}
if (Max == 0){
S = 0;
} else {
S = 255 * (Max - Min) / Max;
}
V = Max;
}
}
Hを求めるところはもっとまとめられるかも・・・
Hのみ0~360(360で色相未定義)
RGB,SLVは0~255