I have found an interesting way to create gradients with lines in a tutorial.
size (900, 900);
background (255);
colorMode(HSB,360,100,100);
for (int i = 0; i < 300; i++) {
stroke(i,100,100);
line(0, i, 1000, i);
}
Now, I would like to make a gradient from yellow(60) to blue(180). I have tried to make another loop from 60 to 180 and use it like hue, but It does not work.
size (900, 900);
background (255);
colorMode(HSB,360,100,100);
for (int i = 0; i < 300; i++) {
for(int g = 60; g < 180; g++) {
stroke(g,100,100);
line(0, i, 1000, i);
}
}
Could you please tell me how to make a number from 60 to 180 to make this gradient? Thanks!
Maybe what you are looking for is to use the function map().
Because see, you are trying to iterate two ranges: a vertical position, maybe with a variable y, and at the same time a hue. Both ranges have different starting and ending points.
With map you could map the vertical position that goes from 0 to height to a hue that goes from 60 to 180.
size (900, 900);
background (255);
colorMode(HSB, 360, 100, 100);
int start = 0;
int end = height;
int hueStart = 60;
int hueEnd = 180;
for (int y = start; y < end; y++) {
stroke(map(y, start, end, hueStart, hueEnd), 100, 100);
line(0, y, 1000, y);
}
This way you can change independently start, end, hueStart and hueEnd to define where you want the gradient and which colors should be in it.