What does “draw something” entail? Painting or laying down other objects? Either way, I think breaking things up into sub-shapes is almost inevitable.
It needs a bit of cleanup and docs, but I have a binding to this, which uses the painting approach (probably at the moment to be serviced by my Bytemap plugin). Getting all the details right on objects is quite an undertaking; maybe something like this would be worth binding.
If you use a mesh the sub-shapes might not be much of an issue. By the sounds of it you’re leaning toward polygon objects, in which case a “creative way to harvest vertices” would be–assuming everything is nicely triangulated–to gather up all the edges, then throw out any that show up twice (meaning they straddle two interior polygons). This would leave you with all the boundary edges ( n.b. possibly including interior ones, meaning your shape has holes).
At this point every vertex should lie on exactly two edges, so you could start at an arbitrary vertex and choose one of the edges that contains it. Then you join that to the next vertex, remove the edge from some list so it won’t turn up again in your search, and find the other edge that new vertex was in. You do this until you’ve walked around your shape, building up the list of vertices as you go. (If you have vertices and edges left over, it means your shape comprised several “islands”, in which case you’ll need to iterate this and do multiple polygons.)
Did that make sense in words?
This would probably be easier to explain in pictures.