From 57e4cbe402602ec13870a3a61a803d52d85e03e9 Mon Sep 17 00:00:00 2001 From: fmOOmf <98671961+fmOOmf@users.noreply.github.com> Date: Wed, 26 Oct 2022 21:22:56 +0200 Subject: [PATCH] Final Heading correction --- python/port/mod/turtle/turtle.cpp | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/python/port/mod/turtle/turtle.cpp b/python/port/mod/turtle/turtle.cpp index b3568db70..00568492b 100644 --- a/python/port/mod/turtle/turtle.cpp +++ b/python/port/mod/turtle/turtle.cpp @@ -74,35 +74,6 @@ void Turtle::left(mp_float_t angle) { void Turtle::circle(mp_int_t radius, mp_float_t angle) { mp_float_t oldHeading = heading(); mp_float_t length = std::fabs(angle * k_headingScale * radius); - /* - if (length > 1) { - if (angle > 0) { - for (int i = 1; i < length; i++) { - mp_float_t progress = i / length; - // Move the turtle forward - if (forward(1)) { - // Keyboard interruption. Return now to let MicroPython process it. - return; - } - setHeadingPrivate(oldHeading+std::copysign(angle*progress, radius)); - } - forward(1); - setHeading(oldHeading+angle); - } else { - for (int i = 1; i < length; i++) { - mp_float_t progress = i / length; - // Move the turtle backward - if (forward(-1)) { - // Keyboard interruption. Return now to let MicroPython process it. - return; - } - setHeadingPrivate(oldHeading-std::copysign(angle*progress, radius)); - } - forward(-1); - setHeading(oldHeading+angle); - } - } - */ int direction = 1; // 1=fwd, -1=backward if (angle < 0) {direction =-1;} if (length > 1) { @@ -116,7 +87,7 @@ void Turtle::circle(mp_int_t radius, mp_float_t angle) { setHeadingPrivate(oldHeading+std::copysign(angle*progress, direction*radius)); } forward(direction); - setHeading(oldHeading+angle); + setHeading(oldHeading+std::copysign(angle, direction*radius)); } }