1
hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));

これは、r、g、および sat の値がすべてゼロの場合に、hue を -2147483288 に設定しています。どんな助けでも大歓迎です!編集:これはC#です

4

2 に答える 2

4

あなたは0で割っています。つまり、satは0です。どのプログラミング言語でも絶対にお勧めできません。sat = 0 の場合は、特別なケースが必要です。

if(sat==0)
    hue = 0;
else
    hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));
于 2014-01-21T00:15:51.407 に答える