Надеюсь, вы уже нашли ответ, но я все равно на него отвечу.
Это классический случай ошибки, вызванной плохими привычками программирования.Вы можете быть новичком в этом, и я не имею в виду это плохо, но вы можете извлечь из этого урок;)
Во-первых, «ширина» и «длина» - это ключевые слова в обработке, которые должныне присваивается, только считывается.
Во-вторых, цикл запускается с 0, если только для этого нет особой причины.Это из-за того, как работает компьютер, и потому, что это облегчает логику в остальной части кода.Например, модуль.
Это также ошибка вашего кода.
- Первая чашка рисуется при x = ширина * (1% 3) = ширина
- Вторая чашка рисуется при x = ширина * (2% 3) = 2 * ширина
- Третья чашка рисуется при x = ширина * (3% 3) = 0 * ширина = 0
Используемая логика не является неправильной, но основана на цикле for, который начинается с 0.
Этот код выполняет то, что вы хотите.Он рисует первое изображение при x = 0 и y = 0.При необходимости вы можете добавить смещение.
void setup() {
PImage fullCup = loadImage("fullCup.jpg");
PImage emptyCup = loadImage("emptyCup.jpg");
size(800, 800);
int count = 4;
int numberOfCups = 6;
int img_width = 210;
int img_length = 180;
for (int i = 0; i < numberOfCups; i++) {
if (i < count) {
image(fullCup, img_width * (i % 3), img_length*(i/3));
} else {
image(emptyCup, img_width * (i % 3), img_length*(i/3));
}
}
}