Shape outline from "control points"

I’m trying to figure out a bit of math for defining the outline of a shape that is controlled by a sort of circle I’ve named “control points”. These objects are just circles that can be scaled up and down, and moved around the canvas dynamically.

Essentially, what I want to do, is find the outside of the shape using these control points, and from no particular order within the list, determine which control point is the next in the sequence. From there, it will determine at which point within the control point to begin a curve, the angle of this curve, and then move on to the next connection. It should also determine which nodes do no modification to the shape itself, such as purely interior nodes, and not only not connect them, but remove them entirely.

This is how the control points might look when ordered:

And this is how this configuration might become a shape:

I have been trying to figure out an algorithm that will trace this shape, but I’m having a lot of trouble figuring it out. Anybody able to think of a method that will achieve this? Or at least, to point me toward some kind of tutorial, paper, or article on a similar action?