I am struggling with the following problem:
I am given n points and a radius and I have to place them on a circle as symmetrical as possible. 
Currently, I used something like this:
float theta = 360.0f / n;
int i = 0;
for (Word w : e.getValue()) {
    double newX = Math.sin(theta * i) * RADIUS + I_OFFSET_X;
    double newY = Math.cos(theta * i) * RADIUS + I_OFFSET_Y;
    mxCell v2 = (mxCell) graph.insertVertex(parent, null, w.getValue(), newX, newY, OW_WIDTH, OW_HEIGHT,"shape=ellipse");
    graph.insertEdge(parent, null, "", v1, v2);
    i++;
}
where n is my number of points.
This works fine for a large enough n, but for n=3 for example, I get something like:

I would actually like to have something like:

(bad drawing skills are bad..)
So basically, something as symmetric as possible would be awesome.
Any hints on how to solve this?
Thanks <3