[Math] Calculating the scale factor to resize a polygon to a specific size

areageometrypolygons

For some graphics programming I am doing, I am trying to scale a polygon so it has a specific area. The reason I am doing this is because I know the shape of something like the outline of a room, but I need to know what the position of each point would be if it were of a certain size in square meters. For example:

An example of a polygon being scaled.

As you can see, I am scaling the polygon so that it retains the same shape, but it has a different area.

I have searched for solutions to this problem, but most results appear to be unrelated; they are usually either about scaling a polygon by a scale factor or calculating the area of a polygon. I don't know if there is a specific name for this process; I know for vectors you often normalize the vector and then multiply them by the desired length, but searching for how to normalize polygons doesn't seem to get results either.


I have considered using a scaling method as described in this post to get the resulting polygon. However, while I know the coordinates of every point $p_i$ in the polygon as well as its area $A$, I do not know how to calculate the scale factor $\alpha$ to scale the points with to get the desired area $A'$.

How do I calculate the scale factor $\alpha$ that will scale a polygon to the desired area of $A'$? Is there a different approach that will solve my problem?

Best Answer

When you scale a polygon (or any subset of the plane whose area you can define) by $\alpha$, its area scales by $\alpha^2$. Proving this rigorously takes some work and requires you to have a rigorous definition of "area", but you can see that this makes sense by considering a rectangle. If you scale a rectangle by $\alpha$, you scale each of its sides by $\alpha$, so since the area is the product of the two side lengths, you scale the area by $\alpha^2$.

So in your case, you want $\alpha^2A=A'$, or $\alpha=\sqrt{A'/A}$.

Related Question