I have a 2D shape stored as a path element in an SVG. The shapes consist of Bezier curves and line segments.
I also have a set of equally space points along the shape that I am generating using arc length parameterization.
How can I use either the SVG or these points to determine the medial axis of the shape?
I am using Python, but any sort of pseudocode or algorithm advice would be much appreciated.
The following is an example of the types of shapes I am dealing with, and the red dots are my sampled points along the curve.

A tad late but here goes:
The pictures above shows: (I've converted the OP's image to SVG with an online tool hence the ragged boundary that is an artifact of the red dots) 1. Superimposed Medial and Scale Axis Transform (MAT and SAT). 2. Scale Axis Transform only. 3. Medial Axis Transform only. 4. One of many 2-prongs (see below). 5. The single 3-prong in the SAT (there are many in the MAT).
To find the Medial Axis (MA) or Medial Axis Transform (MAT) (purple curves in above image) the following algorithm can be used (based on a paper by Choi, Choi, Moon and Wee - see a demo implementation here that also handles intersecting shapes and shapes with holes). Other algorithms also exist.
The algorithm is much harder to implement than finding a binary image (e.g. bitmap) skeleton (a.k.a. grassfire or discrete transform) but has several advantages (such as being analytic). To simplify things, the discussion below only handles the case of simple (non-intersecting) shapes without holes.
Some definitions
Some notes
Algorithm overview
Finally find the n-prongs for n >= 3. Starting from each contact point:
If either 1 or 2 iterations of the above occured move to the next contact point on the boundary (using next). If, however, 3 or more iterations were required, it can be proved that a 3-prong branch point exists and should be inserted with contact points on each boundary piece between cp1 and cp1.next.
In that case, insert the 3-prong (see below on how to find these) and go back to step 1, again starting from cp1.
Finding a 2-prong
I will summarize here but the paper by Choi et al. explains this part quite clearly and is easy to follow.
Choose a point on the boundary that will be the first contact point of our 2-prong and call it bp1. Draw an inward normal ray form the boundary point (i.e the first 'prong' of the 2-prong to be found). Now iterate:
Finding a 3-prong
Here we deviate a bit from the paper by constructing a circumcircle as opposed to using a potential function.
Please feel free to ask if anything is unclear.