From 61399d07eb1bdcc397f8ccf878569e03d8353f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 15 Apr 2020 15:19:48 +0200 Subject: [PATCH] [python] Turtle: use std::fabs std::copysign when possible --- python/port/mod/turtle/turtle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/port/mod/turtle/turtle.cpp b/python/port/mod/turtle/turtle.cpp index 8d33928ec..1a5c3abc2 100644 --- a/python/port/mod/turtle/turtle.cpp +++ b/python/port/mod/turtle/turtle.cpp @@ -73,7 +73,7 @@ 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 = (angle > 0 ? 1 : -1) * angle * k_headingScale * (radius > 0 ? 1 : -1) * radius; + mp_float_t length = std::fabs(angle * k_headingScale * radius); if (length > 1) { for (int i = 1; i < length; i++) { mp_float_t progress = i / length; @@ -82,7 +82,7 @@ void Turtle::circle(mp_int_t radius, mp_float_t angle) { // Keyboard interruption. Return now to let MicroPython process it. return; } - setHeadingPrivate(oldHeading+angle*progress*((radius>0) ? 1 : -1)); + setHeadingPrivate(oldHeading+std::copysign(angle*progress, radius)); } forward(1); setHeading(oldHeading+angle);