Hoje vou mostrar uma classe para interpolação linear de cores no C#.

Essa classe mistura as cores conforme o peso selecionado no ultimo parâmetro do método.

[sections] [section title=” Classe para interpolação linear de cores (LERP)”]

static class CsVerify
{
public static float Lerp(this float start, float end, float amount)
{
float difference = end – start;
float adjusted = difference * amount;
return start + adjusted;
}
public static Color Lerp(this Color colour, Color to, float amount)
{
// start colours as lerp-able floats
float sr = colour.R, sg = colour.G, sb = colour.B;

// end colours as lerp-able floats
float er = to.R, eg = to.G, eb = to.B;

// lerp the colours to get the difference
byte r = (byte)sr.Lerp(er, amount),
g = (byte)sg.Lerp(eg, amount),
b = (byte)sb.Lerp(eb, amount);

// return the new colour
return Color.FromArgb(r, g, b);
}
}

Para utiliza-lo execute:

//cor base // outra cor // peso da "mistura", quanto maior mais da 2° cor será adicionada
var cor = Color.White.Lerp(Color.Red, 0.8f);

[/section] [/sections]
Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Classe para interpolação linear de cores (LERP)
Tags:                 

Deixe uma resposta

%d blogueiros gostam disto: