Как исправить ошибку - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь написать программу, которая dr aws квадрат 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);

1 Ответ

1 голос
/ 26 мая 2020

Просмотрите программу и подумайте, как она будет выполняться, если, скажем, x = 50, y = 50

x < img.getWidth()/2 оценивается как истина, поэтому красный установлен на 255, перейдите к следующему оператору

y > img.getHeight()/2 оценивается как false, поэтому выполняется код «else», а зеленый устанавливается на 255

Это дает вам пиксель с 255 красным и 255 зеленым, а не тем, что вы ожидаете.

Если вы используете elseif, вы получите желаемое поведение.

...