7
$\begingroup$

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?

$\endgroup$

2 Answers 2

3
$\begingroup$

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}$.

$\endgroup$
2
  • $\begingroup$ Resizing a vector to a length of 1 is often called normalizing the vector. Do you know if there is an equivalent expression for polygons when you resize it to be of an area equal to 1? $\endgroup$
    – exodrifter
    Aug 11, 2016 at 19:33
  • 1
    $\begingroup$ I don't recall ever seeing such a term. But more broadly, "normalize" just means "put in some nice ('normal') form", so it would be reasonable to use it for polygons too. $\endgroup$ Aug 11, 2016 at 19:35
2
$\begingroup$

If the ratio of areas is $A:B$, then the ratio of corresponding lengths must be $$\sqrt{A}:\sqrt{B}$$

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .