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); }