Проблема заключается в функции screenY
.Распечатайте переменную current
в вашем эскизе обработки локально и онлайн.В OpenProcessing переменная current
быстро растет более чем в несколько тысяч, в то время как локально она колеблется от 0 до ~ 260.
Похоже, что в OpenProcessing есть ошибка внутри этой функции.
Чтобы исправить этотем не менее, я бы порекомендовал вам зарегистрироваться по-другому, когда вы нарисовали треугольник в верхней части круга, например, с помощью переменной угла:
// Calculate angle and modulo it by 2 * PI
angle = (angle - 0.02) % (2 * PI);
// If the sketch has made a full revolution
if (previous_1 < previous_2 && previous_1 < angle) {
// draw ellipse at the extrema position
fill(128, 9, 9);
ellipse(-90, -60, 7, 10);
}
// update the 2 previous angles of the third vertex
previous_2 = previous_1;
previous_1 = angle;
Однако из-за того, как вы рисуете треугольники, эллипснаходится под углом около PI / 3
.Чтобы исправить это, можно было бы повернуть экран на angle + PI / 3
следующим образом:
rotate(angle + PI / 3);
Возможно, вам придется поэкспериментировать со смещением угла немного больше, чтобы идеально нарисовать эллипс в верхней частикруг.