From 287dedabc014305c37551958c3e0eef475a149f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Tue, 5 Feb 2019 17:32:55 +0100 Subject: [PATCH] [python/turtle] The turtle heading is in [0;360[ --- python/port/mod/turtle/turtle.cpp | 7 +++++++ python/port/mod/turtle/turtle.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/python/port/mod/turtle/turtle.cpp b/python/port/mod/turtle/turtle.cpp index f7cd49c5c..98d0c6330 100644 --- a/python/port/mod/turtle/turtle.cpp +++ b/python/port/mod/turtle/turtle.cpp @@ -175,6 +175,13 @@ void Turtle::viewDidDisappear() { // Private functions +void Turtle::setHeadingPrivate(mp_float_t angle) { + // Put the angle in [0; 360[ + mp_float_t angleLimit = 360; + m_heading = angle - ((angle >= 0 && angle < angleLimit) ? 0 : std::floor(angle/angleLimit) * angleLimit); + assert(m_heading >= 0 && m_heading < angleLimit); +} + KDPoint Turtle::position(mp_float_t x, mp_float_t y) const { return KDPoint(floor(x + k_xOffset), floor(k_invertedYAxisCoefficient * y + k_yOffset)); } diff --git a/python/port/mod/turtle/turtle.h b/python/port/mod/turtle/turtle.h index 987d73a90..2b9d83b9c 100644 --- a/python/port/mod/turtle/turtle.h +++ b/python/port/mod/turtle/turtle.h @@ -115,7 +115,7 @@ private: KDColor m_color; }; - void setHeadingPrivate(mp_float_t angle) { m_heading = angle; } + void setHeadingPrivate(mp_float_t angle); KDPoint position(mp_float_t x, mp_float_t y) const; KDPoint position() const { return position(m_x, m_y); }