From e5f74a64ed814bec1bdff11a50566d8f40229216 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 20 Jun 2019 15:44:45 -0400 Subject: polar: Add initial support for multiple bed rotations Signed-off-by: Kevin O'Connor --- klippy/chelper/kin_polar.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'klippy/chelper/kin_polar.c') diff --git a/klippy/chelper/kin_polar.c b/klippy/chelper/kin_polar.c index cc1f2eab..d1a00273 100644 --- a/klippy/chelper/kin_polar.c +++ b/klippy/chelper/kin_polar.c @@ -1,6 +1,6 @@ // Polar kinematics stepper pulse time generation // -// Copyright (C) 2018 Kevin O'Connor +// Copyright (C) 2018-2019 Kevin O'Connor // // This file may be distributed under the terms of the GNU GPLv3 license. @@ -24,8 +24,12 @@ polar_stepper_angle_calc_position(struct stepper_kinematics *sk, struct move *m { struct coord c = move_get_coord(m, move_time); // XXX - handle x==y==0 - // XXX - handle angle wrapping - return atan2(c.y, c.x); + double angle = atan2(c.y, c.x); + if (angle - sk->commanded_pos > M_PI) + angle -= 2. * M_PI; + else if (angle - sk->commanded_pos < -M_PI) + angle += 2. * M_PI; + return angle; } struct stepper_kinematics * __visible -- cgit v1.2.3-70-g09d2