Точечный продукт и яркость / Findmyicone

Все,

У меня есть основной вопрос, с которым я борюсь здесь. Когда вы посмотрите на пример кода findmyicone из WWDC 2010, вы увидите следующее:

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);
}

И тогда это называется:

normalize(orangeColor, referenceColor);

Запустив отладчик, он преобразует BGRA: (красный 255, зеленый 127, синий 0) в (красный 0, зеленый 255, синий 0). Я искал в Интернете и ТАК, чтобы найти детали о яркости и точечном продукте, и там действительно нет информации.

1- Может ли кто-нибудь подсказать мне, что делает эта функция?

2- Можете ли вы привести меня к некоторым полезным темам / учебнику для начинающих онлайн?

еще раз спасибо КМБ

Ответы на вопрос(1)

Ваш ответ на вопрос