A: 

I would try to calculate the normal vectors on each red line (eg. 0 degrees for polygon 5, 45 degrees for 4, 90 degrees for 3, etc.) and then the angle you need to rotate that normal - and thus the matching polygon - so that the normal "points up" should be very simple.

Unfortunately I don't have the needed formulae available for you off the top of my head, but Googling "normal vector" and/or searching for it on Wikipedia should get you started just fine, I think. Possibly in the direction of the so called 'cross product'.

No central reference point for all polygons should be needed for this (normal direction is not related to absolute coordinates).

peSHIr
A: 
Phil H
mimix
No problem. One thing to consider is how this might need to vary in the future - different stadium shapes and setups (several banks of seats, for example). Will your code need to cope with that?
Phil H
absolutely. this was just an example. I think it will still cope as I only want to determine the rotation of the outline so i can apply the same to the content/seats. Of course the ideal would have been a nice CAD with defined seats to reference...but its a bigger ask of the business.
mimix
A: 

sin, cos, tan functions allow you to convert from triangle edge ratio to degrees.

Imagine, one end of red line is at (x1,y1) and other end is at (x2,y2). You can treat red line as hipotenuse of rectangular triangle and use arctan to get degrees.

Ratio between catheti is (x2-x1) / (y2 - y1). Rotation of red line then is arctan((x2-x1) / (y2 - y1)). Watch out for situations when y1-y1 is 0!

Let's try one example from your picture, polygon 6 with coords (55, 65) and (65, 55). Type in google: "arctan((65-55)/(55-65)) in degrees"

Pēteris Caune
"Watch out for situations when y1-y1 is 0" - that's (among other things) what the ATan2 function is good for!
danbystrom