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