From 1931b7e0e2389a9d04b07e36676f9060ebf4b9c3 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Sun, 1 Feb 2015 20:06:45 +0100 Subject: Begin work on canonical movements. --- problem.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'problem.hpp') diff --git a/problem.hpp b/problem.hpp index 6eadd0a..5d9269a 100644 --- a/problem.hpp +++ b/problem.hpp @@ -33,6 +33,19 @@ struct hilare_a { // System A return pos() + param->l * dir_trolley(); } + vec canon_curve_center() const { + double delta = cos(theta) * sin(theta + phi) - sin(theta) * cos(theta + phi); + assert(delta != 0); + + vec a = pos(); + vec b = pos_trolley(); + vec eth = vec::from_polar(1, theta); + vec ethph = vec::from_polar(1, theta + phi); + double xc = (vec::dot(a, eth) * sin(theta + phi) - vec::dot(b, ethph) * sin(theta)) / delta; + double yc = (cos(theta) * vec::dot(b, ethph) - cos(theta + phi) * vec::dot(a, eth)); + return vec(xc, yc); + } + bool intersects(const obstacle &o) const; // intersects an obstacle ? }; -- cgit v1.2.3