- Переменная "z" должна быть инициализирована перед тем, как она будет использоваться в условии if-else. В противном случае, если z < 0, программа попытается выполнить оператор if и произойдет ошибка.
- Переменная "z" должна быть обновлена на каждой итерации функции draw(). В настоящее время она обновляется только один раз в начале программы.
- Операторы if-else, которые обновляют переменную "z", должны быть частью функции draw(), а не глобальными операторами.
- При задании радиуса окружности с помощью переменной "z" следует использовать функцию constrain(), чтобы ограничить его диапазон до [0, 20].
Исправленный код:
float rou = 20;
float n = 0.01;
float z;
void setup() {
frameRate(120);
size(500, 500);
}
void draw() {
if (z >= 0 && z <= 20) {
z = rou - n;
}
else {
z = rou + n;
}
z = constrain(z, 0, 20);
circle(mouseX, mouseY, z);
}
KiberDan )Ученик (95)
1 год назад
float z = rou;
int direction = 1;
void setup() {
frameRate(120);
size(500, 500);
}
void draw() {
z += n * direction;
if (z <= 0 || z >= rou * 2) {
direction *= -1;
}
circle(mouseX, mouseY, z);
}
Вот это работает