我正在尝试编写一个程序,该程序绘制一个 200 像素乘 200 像素的正方形,正方形的颜色为红色(红色值 255(、绿色(绿色值 255(、蓝色(蓝色值 255(和洋红色(红色值 255 和蓝色值 255(。所有其他 RGB 值都设置为 0。但是,我的代码有一个错误,并产生了相当黄色、绿色、洋红色和蓝色。如何获得红色而不是黄色?下面是我的代码。
var img = new SimpleImage(200,200);
for (var px of img.values()){
var x = px.getX();
var y = px.getY();
if (x < img.getWidth()/2){
px.setRed(255);
}
if (y>img.getHeight()/2){
px.setBlue(255);
}
else {
px.setGreen(255);
}
}
print (img);
浏览程序并考虑在以下情况下如何执行它x = 50, y = 50
x < img.getWidth()/2
计算结果为 true,因此红色设置为 255,请继续执行下一条语句
y > img.getHeight()/2
计算结果为 false,因此执行"else"代码并将绿色设置为 255
这为您提供了一个具有 255 个红色和 255 个绿色的像素,而不是您期望的像素。
如果您使用elseif
您将获得所需的行为。