2016-05-10 9 views
2

まずはC#の新機能です!インポートされた10進値に応じてカラー値を適用します

私は約300万行のファイルを持っています。各行には0〜1の数字が入ります(小数点以下6桁)。

私がしたいことは、0と1の間にある数に応じて、各番号のRGB値を作成することです。たとえば、0が緑、1が赤、そしてその間のすべての数値が緑と赤の間のRGB値を持ち、色の尺度の距離を表すために作成されます。

RGB値はどのようにして計算できますか?

+0

私は少しあなたの質問を整理するために自由を取りました。あなたが気にしないことを願っています! –

答えて

2

まあ、最も簡単な方法は、次のようになります。

int red = (int)(Num * 255); 
int green = (int)((1 - Num) * 255); 
int blue = 0; 

に聞こえるしかし、あなたが1

Green - Red gradient

で赤と緑と緑の0時と赤の間の勾配を得る。この方法「良い」から「悪い」の範囲の値に対して視覚的なスケールを生成したいと思うようなものです。その中で、人々はしばしば "okayish"値を示すために真ん中に黄色を置くことも望みます。ここではそのためのコードは次のとおりです。

int red, green, blue; 
if (Num < 0.5) 
{ 
    red = (int)(Num * 2 * 255); 
    green = 255; 
    blue = 0; 
} 
else 
{ 
    red = 255; 
    green = (int)((2 - 2 * Num) * 255); 
    blue = 0; 
} 

enter image description here

+0

ありがとうございました!あなたが1未満のリスト "Num"の最大値を計算する方法を知っていますか? –

+0

'nums.Max(x => x <1);'それを行う必要があります。 – Spivonious

+0

これはありがたいです、私はエラーメッセージ 'decimal'に 'Max ...'の定義が含まれていません。これは何を意味するのでしょうか? –

-1

小数点の値を赤、緑、青の3つの別々の値に変換するアルゴリズムを派生させる必要があります。次に、組み込みのColorタイプを使用して、これらの値(https://msdn.microsoft.com/en-us/library/cce5h557(v=vs.110).aspx)で色を作成します。

あなたの色はあなた次第です。

+0

なぜdownvote?私は彼のためのコードを書いていないので? SOは宿題に答えるためのものではありません。 – Spivonious

関連する問題