Я создаю программу в Processing.js, которая помогает мне создавать цветовые схемы для пиксельной графики. Генератор рампы работает, поэтому теперь мне нужна программа для преобразования цветов HSV, с которыми я работаю, в RGB, чтобы я мог ввести их в программу, которую я использую (она не позволяет мне использовать цветовое пространство HSV для некоторых причина, но я в порядке с этим, потому что мне комфортно с этой программой).
Вот функция, которая вызывает проблемы
void convert(float h,float s,float v){
// h will be 0-360, s and v are 0-100
PrintWriter output;
output = createWriter("value.txt");
float S = s/100;
float V = v/100;
//the conversion algorithm I found expects s and v to be 0-1
float c = S*V;
float x = c*(1-abs(((h/60)%2)-1));
float e = V-c;
float R = 0.0;
float G = 0.0;
float B = 0.0;
if(0 <= h && h <= 60) {
R = c;
G = x;
B = 0;
} else if(60 <= h && h <= 120) {
R = x;
G = c;
B = 0;
} else if(120 <= h && h <= 180) {
R = 0;
G = c;
B = x;
} else if(180 <= h && h <= 240) {
R = 0;
G = x;
B = c;
} else if(240 <= h && h <= 300){
R = x;
G = 0;
B = c;
} else if(300 <= h && h <= 360) {
R = c;
G = 0;
B = x;
} else {
}
float r = R + e;
float g = G + e;
float b = B + e;
println(round(r*255)+","+round(g*255)+","+round(b*255));
output.println(round(r*255)+","+round(g*255)+","+round(b*255));
output.flush();
output.close();
}
println
, который не записывает в файл, прекрасно отображается в консоли, но output.println
записывает только последнюю строку в файл. Я ожидаю 220 строк вывода. При необходимости я могу отредактировать вопрос, чтобы получить остальную часть кода, но это единственная функция, которая сейчас вызывает проблемы. Вот исходный код алгоритма преобразования, который я использую .