1
MS Paint와 비슷한 색상 선택기를 만들려고합니다.무지개 색상 선택기를 만들 때 색이 흠뻑 빠지기 위해 나는 무엇을 놓치고 있습니까?
아쉽게도 채도 알고리즘을 이해할 수 없습니다.
이 내 현재의 알고리즘을 생성하는 것입니다. Y 축에서 포화 된 효과를 수행하려고 할 때마다 첫 번째 선 다음의 모든 항목을 완전히 빨간색 또는 검은 색으로 만듭니다.
public ColorWheel()
{
for (int y = 0; y < 255; y++)
{
for (int x = 0; x < 255 * 6; x++)
{
//Red 255 - Green 0-254
if (color.R == brightness && color.G < brightness && color.B == 0)
{
color.G += 1;
//color.R -= (byte)y;
//color.G += (byte)y;
//color.B += (byte)y;
}
//Green 255 - Red 255-0
else if (color.R > 0 && color.G == brightness && color.B == 0)
{
color.R -= 1;
//color.R -= (byte)y;
//color.G -= (byte)y;
//color.B += (byte)y;
}
//Green 255 - Blue 0-255
else if (color.R == 0 && color.G == brightness && color.B < brightness)
{
color.B += 1;
//color.R += (byte)y;
//color.G -= (byte)y;
//color.B += (byte)y;
}
//Blue 255 - Green 255-0
else if (color.R == 0 && color.G > 0 && color.B == brightness)
{
color.G -= 1;
//color.R += (byte)y;
//color.G -= (byte)y;
//color.B -= (byte)y;
}
//Blue 255 - Red 0-255
else if (color.R < brightness && color.G == 0 && color.B == brightness)
{
color.R += 1;
//color.R += (byte)y;
//color.G += (byte)y;
//color.B -= (byte)y;
}
//Red 255 - Blue 255-0
else if (color.R == brightness && color.G == 0 && color.B > 0)
{
color.B -= 1;
//color.R -= (byte)y;
//color.G += (byte)y;
//color.B -= (byte)y;
}
image.SetPixel((uint)x, (uint)y, color);
}
//brightness--;
}
}