I'm creating a 2-dimensional, turn-based strategy game using c++ and SFML-2.0. Movement is distance-based rather than grid-based, with several different triangle-shaped pieces that, on a given turn, each may either rotate in place or move forward.
Movement will work in such a way that the player selects a location for the piece to move to, which generates a potential path for the piece to take. Once the player confirms his or her decision, the piece will move along that path to the desired location. Paths are limited by two factors: distance, how far a piece is able to go, taking into accounts any turns (so if there is a curve, it will be the length along the curve, and not directly from point to point); and steering angle, how far the piece can rotate at any (and up to every) point while moving (for example, from -30 to 30 degrees).
My question is, how should I go about determining the range of potential locations that the player can select to have the piece move to?
I'm not entirely sure what equations and/or algorithm to use here. My original plan was extremely over-complicated, to the point where it was near impossible to implement, let alone explain, and I am at this point totally lost with the project stalled.
How can I determine the range a unit can move, taking into account its turning radius?
For example, in the below image. The red, blue and green lines would all be the same length. The purple circle denotes the movement range the unit can move. (The shape is probably inaccurate and the lines probably aren't actually the same length, but you get the idea)