X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrackpart.cpp;h=882a6772c7f6cba1b0e9c269ad8ff6a00e0fc8df;hb=28947c087bd2d05c1850e320844f2e33fc0fc253;hp=9622b28e7c8fd0fd283a6d152c04afbeb5faae68;hpb=3ea934a7c6be204f82e5d41c3be8d5256efdac64;p=r2c2.git 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