it isn't clear if your problem is: 1) calculating the initial x,y values, or 2) dealing with the offset that will result.

i'll assume you can google for the first, so i'll address the second..

be aware that display.newPolygon() will alter the values of the coordinate list such that the resulting shape's bounding box is centered at 0,0.

an equilateral triangle oriented roughly as you've shown (ie pointing "up", w vertices at pi/6, 5pi/6 and 9pi/6 from origin) will have a bounding box that **IS NOT** centered at 0,0 and so vertices **WILL BE** moved. (by 0,-radius/4 for this specific shape. iow: if triangle itself is centered at 0,0 then it's bounding box is centered at 0,-radius/4. left as an exercise for the curious reader to draw and prove,)

the "fix" is to calculate the bounds of the original vertices, then calculate the center of those bounds. if it happens to be 0,0 then you're done, but in this case it won't be, so... knowing that display.newPolygon() will *subtract* that point from your vertices, you correct for it by *adding* that point to the polygon's x,y. now everything should line up where expected.

hth