Colors 为什么这些形状的颜色不对?
所以我正在写一个处理草图来测试一个随机的地形生成器,我正在制作一个焦土克隆。它似乎按预期工作,但有一个小问题。在代码中,我生成800个1像素宽的矩形,并预先将填充设置为棕色。矩形的组合应该是一个固体块,具有类似棕色污垢的颜色(77,0,0) 但是,无论rgb填充值设置如何,组合都显示为黑色。我想这可能与每个矩形的边框都是黑色有关?有人知道这里发生了什么吗Colors 为什么这些形状的颜色不对?,colors,processing,shapes,Colors,Processing,Shapes,所以我正在写一个处理草图来测试一个随机的地形生成器,我正在制作一个焦土克隆。它似乎按预期工作,但有一个小问题。在代码中,我生成800个1像素宽的矩形,并预先将填充设置为棕色。矩形的组合应该是一个固体块,具有类似棕色污垢的颜色(77,0,0) 但是,无论rgb填充值设置如何,组合都显示为黑色。我想这可能与每个矩形的边框都是黑色有关?有人知道这里发生了什么吗 final int w = 800; final int h = 480; void setup() { size(w, h); f
final int w = 800;
final int h = 480;
void setup() {
size(w, h);
fill(0,128,255);
rect(0,0,w,h);
int t[] = terrain(w,h);
fill(77,0,0);
for(int i=0; i < w; i++){
rect(i, h, 1, -1*t[i]);
}
}
void draw() {
}
int[] terrain(int w, int h){
width = w;
height = h;
//min and max bracket the freq's of the sin/cos series
//The higher the max the hillier the environment
int min = 1, max = 6;
//allocating horizon for screen width
int[] horizon = new int[width];
double[] skyline = new double[width];
//ratio of amplitude of screen height to landscape variation
double r = (int) 2.0/5.0;
//number of terms to be used in sine/cosine series
int n = 4;
int[] f = new int[n*2];
//calculating omegas for sine series
for(int i = 0; i < n*2 ; i ++){
f[i] = (int) random(max - min + 1) + min;
}
//amp is the amplitude of the series
int amp = (int) (r*height);
for(int i = 0 ; i < width; i ++){
skyline[i] = 0;
for(int j = 0; j < n; j++){
skyline[i] += ( sin( (f[j]*PI*i/height) ) + cos(f[j+n]*PI*i/height) );
}
skyline[i] *= amp/(n*2);
skyline[i] += (height/2);
skyline[i] = (int)skyline[i];
horizon[i] = (int)skyline[i];
}
return horizon;
}
final int w=800;
最终int h=480;
无效设置(){
尺寸(w,h);
填充(0128255);
rect(0,0,w,h);
int t[]=地形(w,h);
填充(77,0,0);
对于(int i=0;i
我想这可能与每个矩形的边框都是黑色有关
我相信是这样的。在您的setup()
函数中,我在绘制矩形之前添加了该函数。这将删除矩形的黑色轮廓。由于每个矩形只有1像素宽,因此使用此黑色笔划(默认情况下处于启用状态)会使每个矩形的颜色变为黑色,而不管您之前尝试选择什么颜色
这是一个更新的setup()
函数-我现在看到一个红棕色的地形:
void setup() {
size(w, h);
fill(0, 128, 255);
rect(0, 0, w, h);
int t[] = terrain(w, h);
fill(77, 0, 0);
noStroke(); // here
for (int i=0; i < w; i++) {
rect(i, h, 1, -1*t[i]);
}
}
void setup(){
尺寸(w,h);
填充(0、128、255);
rect(0,0,w,h);
int t[]=地形(w,h);
填充(77,0,0);
noStroke();//这里
对于(int i=0;i
我想这可能与每个矩形的边框都是黑色有关
我相信是这样的。在您的setup()
函数中,我在绘制矩形之前添加了该函数。这将删除矩形的黑色轮廓。由于每个矩形只有1像素宽,因此使用此黑色笔划(默认情况下处于启用状态)会使每个矩形的颜色变为黑色,而不管您之前尝试选择什么颜色
这是一个更新的setup()
函数-我现在看到一个红棕色的地形:
void setup() {
size(w, h);
fill(0, 128, 255);
rect(0, 0, w, h);
int t[] = terrain(w, h);
fill(77, 0, 0);
noStroke(); // here
for (int i=0; i < w; i++) {
rect(i, h, 1, -1*t[i]);
}
}
void setup(){
尺寸(w,h);
填充(0、128、255);
rect(0,0,w,h);
int t[]=地形(w,h);
填充(77,0,0);
noStroke();//这里
对于(int i=0;i
对于一个像素,您还可以使用点(x,y),即使用笔划设置颜色的像素。对于一个像素,您还可以使用点(x,y),即使用笔划设置颜色的像素。