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

| cite | improve this answer | |
$\endgroup$
  • $\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 '16 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$ – Eric Wofsey Aug 11 '16 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}$$

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.