Color color = new Color(0,0,0);
//Then you can change the argb properties:
color.A = 10;
color.R = 15;
color.G = 9;
color.B = 25;
내가 당신을 이해한다면이 같은 뭔가가 필요 : 예를 들어
제가 조사를 좀 해봤 C++ 코드가이 게시물을 발견 : 나는 C 번호로 코드를 수정 한
http://www.cs.rit.edu/~ncs/color/t_convert.html
, IncreaseHueBy 방법을 가지고, 그리고 몇 가지 버그 수정 :
public static void IncreaseHueBy(ref Color color, float value, out float hue)
{
float h, s, v;
RgbToHsv(color.R, color.G, color.B, out h, out s, out v);
h += value;
float r, g, b;
HsvToRgb(h, s, v, out r, out g, out b);
color.R = (byte)(r);
color.G = (byte)(g);
color.B = (byte)(b);
hue = h;
}
static void RgbToHsv(float r, float g, float b, out float h, out float s, out float v)
{
float min, max, delta;
min = System.Math.Min(System.Math.Min(r, g), b);
max = System.Math.Max(System.Math.Max(r, g), b);
v = max; // v
delta = max - min;
if (max != 0)
{
s = delta/max; // s
if (r == max)
h = (g - b)/delta; // between yellow & magenta
else if (g == max)
h = 2 + (b - r)/delta; // between cyan & yellow
else
h = 4 + (r - g)/delta; // between magenta & cyan
h *= 60; // degrees
if (h < 0)
h += 360;
}
else
{
// r = g = b = 0 // s = 0, v is undefined
s = 0;
h = -1;
}
}
static void HsvToRgb(float h, float s, float v, out float r, out float g, out float b)
{
// Keeps h from going over 360
h = h - ((int)(h/360) * 360);
int i;
float f, p, q, t;
if (s == 0)
{
// achromatic (grey)
r = g = b = v;
return;
}
h /= 60; // sector 0 to 5
i = (int)h;
f = h - i; // factorial part of h
p = v * (1 - s);
q = v * (1 - s * f);
t = v * (1 - s * (1 - f));
switch (i)
{
case 0:
r = v;
g = t;
b = p;
break;
case 1:
r = q;
g = v;
b = p;
break;
case 2:
r = p;
g = v;
b = t;
break;
case 3:
r = p;
g = q;
b = v;
break;
case 4:
r = t;
g = p;
b = v;
break;
default: // case 5:
r = v;
g = p;
b = q;
break;
}
}
을
각 프레임마다 색조를 1로 늘려 값을 1로 테스트하여 상당히 잘 작동했습니다. 반올림 오류가있을 수 있습니다.
그렇다면 Microsoft.XNA.Framework.Color가 RGB로 표현 된 것 같습니다. 다른 표현을 원한다면, 그 표현이 어떻게 작동 하는지를 배울 수 있고,이를 바탕으로 RGB 값을 계산하는 함수를 작성할 수 있습니다. –
정말 간단한 방법이 있다고 생각하지 않지만 Wikipedia에 따르면 RGB 색상의 색조를 계산할 수 있습니다. (http://en.wikipedia.org/wiki/Hue#Computing_hue_from_RGB) I 당신이 색조에서 RGB로 쉽게 갈 수 있는지 모르겠다. – gb92