From ce7c14abaef869dd7dac1df2f00f95e2307dd5d2 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Fri, 4 Apr 2014 19:59:03 +0300 Subject: [PATCH] Fix an error in calculating curved TrackPart points --- source/libr2c2/trackpart.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libr2c2/trackpart.cpp b/source/libr2c2/trackpart.cpp index 9622b28..882a677 100644 --- a/source/libr2c2/trackpart.cpp +++ b/source/libr2c2/trackpart.cpp @@ -44,7 +44,7 @@ OrientedPoint TrackPart::get_point(float d) const if(radius) { Angle a = Angle::from_radians(d/radius); - result.position = transform.transform(Vector(sin(a)*abs(radius), radius-cos(a)*radius, 0)); + result.position = transform.transform(Vector(sin(a)*radius, (1-cos(a))*radius, 0)); result.rotation = dir+a; } else @@ -69,7 +69,7 @@ OrientedPoint TrackPart::get_nearest_point(const Vector &p) const a = min(max(a, Angle::zero()), Angle::from_radians(length)); if(radius<0) a = -a; - result.position = transform.transform(Vector(sin(a)*abs(radius), radius-cos(a)*radius, 0)); + result.position = transform.transform(Vector(sin(a)*radius, (1-cos(a))*radius, 0)); result.rotation = dir+a; } else -- 2.43.0