Хорошо, после 2 часов конвертации в yuv, hsv и т. Д. Pp ... Я сдаюсь. Теперь я делаю это следующим образом:
public class ColorUtils {
private static int FIRST_COLOR = Color.GREEN;
private static int SECOND_COLOR = Color.YELLOW;
private static int THIRD_COLOR = Color.RED;
public static int getColor(float p) {
int c0;
int c1;
if (p <= 0.5f) {
p *= 2;
c0 = FIRST_COLOR;
c1 = SECOND_COLOR;
} else {
p = (p - 0.5f) * 2;
c0 = SECOND_COLOR;
c1 = THIRD_COLOR;
}
int a = ave(Color.alpha(c0), Color.alpha(c1), p);
int r = ave(Color.red(c0), Color.red(c1), p);
int g = ave(Color.green(c0), Color.green(c1), p);
int b = ave(Color.blue(c0), Color.blue(c1), p);
return Color.argb(a, r, g, b);
}
private static int ave(int src, int dst, float p) {
return src + java.lang.Math.round(p * (dst - src));
}
}
Благодаря простоте, используя желтый в качестве среднего цвета, сгенерированные цвета становятся ярче: -)
В любом случае ... если у кого-то есть хорошее другое решение Я был бы признателен.
Это похоже на тот же вопрос, что и:
Модульное тестирование на C ++ , которое на самом деле является C ++, несмотря на заголовок URL.
Отсюда они ссылаются на еще два SO вопросы, которые должны помочь:
Модульное тестирование кода C ++ - Инструменты и методология Среда модульного тестирования C ++
Семейство фреймворков для тестирования «xUnit» обычно довольно солидно (jUnit, NUnit и т. Д.). Я сам не использовал его, но есть порт jUnit для C ++:
Существует таблица , в которой сравниваются все (?) среды модульного тестирования C ++ доступно в Википедии.
Также доступно старое сравнение сред модульного тестирования C ++ . Я не думаю, что он не обновлялся, поэтому упоминаю его как дополнение, поскольку он более аргументирован, чем таблица. Он охватывает CppUnit, CppUnitLite, Boost.Test, NanoCppUnit, Unit ++, CxxTest, особенно это не касается Google C ++ framework .
Boost обычно хороший выбор, и он содержит среду тестирования, Библиотека тестов ускорения . Я использовал его для небольших тестов, и он сделал то, что я ожидал, но я не использовал его широко, как в TTD.