▼Hue(色相)の求め方
色相 = ( { 緑の値 – 青の値 } / { RGBの中の最大値 – RGBの中の最小値 } ) × 60
▼ Red、Green、Blueのなかで、いちばん値の大きいものがGreenのときの式
色相 = ( { 青の値 – 赤の値 } / { RGBの中の最大値 – RGBの中の最小値 } ) × 60 + 120
▼ Red、Green、Blueのなかで、いちばん値の大きいものがBlueのときの式
色相 = ( { 赤の値 – 緑の値 } / { RGBの中の最大値 – RGBの中の最小値 } ) × 60 + 240
▼Satulation(彩度)の求め方
▼Value(明度)の求め方
※RGBの値の範囲が0~1の場合は1が上限値。
※RGBの値の範囲が0~255の場合は255が上限値。
▼例:Rの値が153、Gの値が51、Bの値が30のときの、HSV(HSB)の値を求める。
G:51
B:30
●色相(Hue)を求める。
↓RGBの中で、一番値が大きいものがRの時に色相を出す式
色相 = {(緑の値 – 青の値} ÷ {RGBの中の最大値 – RGBの中の最小値}) × 60
色相 = ({51 – 30} / {153 – 30}) * 60
色相 = (21 / 123) * 60
色相 = 10.24390243902439024390243902439
色相 = 10.24
色相 = 10.24°
●彩度(Satulation)を求める。
彩度 = (153 – 30) / 153
彩度 = 123 / 153
彩度 = 0.8039215686274509803921568627451
彩度 = 0.8039
彩度 = 80.39%
●明度(Value・Brightness)を求める。
明度 = 153 / 255
明度 = 0.6
明度 = 60%
S:80.39%
V:60%
↓Illustlatorのカラーウインドウで、今回のRGBからHSV(HSB)への変換が、正しく出来ているか確認。
▼参考にしたサイト
RGB←→HSB相互変換【Windowsプログラミング研究所】
▼その他
3dsMaxはマテリアルのディフューズカラーや、ワイヤカラー(オブジェクトカラー)をHSVで取得する事ができる。
↓選択したオブジェクトに適用されているマテリアルの、ディフューズカラーをHSVで表示する。
print $.material.diffuse.hue print $.Material.diffuse.saturation print $.Material.diffuse.value
hue、saturation、valueは頭文字一文字に省略可能
print $.material.diffuse.h print $.Material.diffuse.s print $.Material.diffuse.v
※複数選択した状態で↑のスクリプトを実行するとエラーになる。
※取得した値の範囲は0~255
※HSVの取得(読み込み)は出来るけど、適用(書き込み)は出来ない。