В функции mousePressed вы фактически никогда не сбрасываете анимацию, вы просто переключаете воспроизведение.
function mousePressed() {
drawThings = !drawThings;
}
Когда воспроизведение снова начинается при нажатии, анимация просто продолжается с того места, где она остановилась.
Вместо того, чтобы выключать рисование при нажатии, сбросьте outerDiam
на 0. Так вот:
function draw() {
if (drawThings) {
[...]
}
function mousePressed() {
drawThings = !drawThings;
}
становится таким:
function draw() {
[...]
}
function mousePressed() {
outerDiam = 0;
}
Также "Пурпурное поле "создается из-за того, что фон вначале имеет фиолетовый цвет:
function setup() {
[...]
background(255, 0, 255); //red is 255, green is 0 and blue is 255 so it appears purple
}
Это перезаписывается, когда вы начинаете рисовать с помощью функции фона в draw (), но в коде, который вы дали фонусохраняет этот цвет до тех пор, пока вы не нажмете, поскольку drawThings
не был определен для начала и стал true
только при первом нажатии.
Если вы сделаете изменения, которые я предложил выше, тогда этот фон в setup ()будет немедленно нарисован, поэтому вы вообще не увидите фиолетовый фон. (Я бы рекомендовал удалить эту первую фоновую функцию, которая есть в функции настройки.)