Я ищу способ суммировать два 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.
Ну, вы в основном ответили на свой вопрос — вы должны реализовать оператор +. Однако я не думаю, что кто-нибудь проведет вас через это здесь … Обычно это просто метод в классе, который вызывается не по имени и () в скобках, а по самому оператору. Проверьте учебники, например, Вот http://www.tutorialspoint.com/cplusplus/cpp_overloading.htm
И если вы говорите о каком-то внешнем классе RGBA, где вы ничего не можете изменить, я предположил, что вам нужно унаследовать этот класс, а затем перегрузить оператор.