Dot Product i Luminance / Findmyicone

Wszystko,

Mam podstawowe pytanie, z którym walczę tutaj. Kiedy spojrzysz na przykładowy kod findmyicone z WWDC 2010, zobaczysz to:

static const uint8_t orangeColor[] = {255, 127, 0};
uint8_t referenceColor[3];

// Remove luminance
static inline void normalize( const uint8_t colorIn[], uint8_t colorOut[] ) {

// Dot product
int sum = 0;
for (int i = 0; i < 3; i++)
sum += colorIn[i] / 3;

for (int j = 0; j < 3; j++)
colorOut[j] = (float) ((colorIn[j] / (float) sum) * 255);
}

A potem nazywa się:

normalize(orangeColor, referenceColor);

Uruchamiając debuger, konwertuje BGRA: (czerwony 255, zielony 127, niebieski 0) na (czerwony 0, zielony 255, niebieski 0). Szukałem w Internecie i SO szczegółów dotyczących luminancji i produktu kropkowego, a tak naprawdę nie ma żadnych informacji.

1- Czy ktoś może mi wskazać, co robi ta funkcja?

2- Czy możesz poprowadzić mnie do kilku przydatnych tematów / podkładów online?

Jeszcze raz dziękuję KMB

questionAnswers(1)

yourAnswerToTheQuestion