Как суммировать цвета RGBA

Я ищу способ суммировать два RGBA цвета. Вот что я делаю:

RGBA c1, c2
RGB c3 = rgba_to_rgb(c1)
RGB c4 = rgba_to_rgb(c2)

RGB r = c3 + c4

RGBA r1 = rgb_to_rgba(r) // I don't know how to implement this function

Как я могу суммировать c1 и c2, не конвертируя их в RGB. В моей программе мне нужно сложить четыре цвета RGBA. У меня есть эта инструкция:

Color r = 1.f/4 * (c1+c2+c3+c4)

Я должен реализовать оператор + для цветов RGBA.

Редактировать:

Для цвета RGB при суммировании двух цветов я делаю это:

RGB r;
r.red = c1.red + c2.red
r.green = c1.green + c2.green
r.blue = c1.blue + c2.blue

Я не знаю, что делать с цветом RGBA. Моя первая идея — преобразовать два цвета в RGB, затем сделать сумму (потому что я знаю, как это сделать для цветов RGB), а затем преобразовать обратно в RGBA. Второе решение состоит в том, чтобы узнать, как напрямую добавлять цвета RGBA.

0

Решение

Ну, вы в основном ответили на свой вопрос — вы должны реализовать оператор +. Однако я не думаю, что кто-нибудь проведет вас через это здесь … Обычно это просто метод в классе, который вызывается не по имени и () в скобках, а по самому оператору. Проверьте учебники, например, Вот http://www.tutorialspoint.com/cplusplus/cpp_overloading.htm

И если вы говорите о каком-то внешнем классе RGBA, где вы ничего не можете изменить, я предположил, что вам нужно унаследовать этот класс, а затем перегрузить оператор.

0

Другие решения


По вопросам рекламы [email protected]