Scaling a polygon such that each point gets displaced according to how far away that point is from the polygon's centroid

396 Views Asked by At

Basically, I want to scale a polygon $\mathcal{P}$, with $n$ vertices, such that each point $p\in\mathcal{P}$ gets displaced according to how far away that point is from the centroid $c\in\mathcal{P}$.

For this, I should be able to focus on just the boundary of this polygon $B=\partial\mathcal{P}$. So, my thought is that I should then be able to take each vertices $v_n$, note the distance $d_n\triangleq\Vert v_n,c\Vert$, and then radially displace each vertex according to a prescribed function $\rho\left( d_n\right)$.

Is this the way to go?

Now, if I was to use conic curves to describe this shape, how would I go about scaling something like that? I would imagine I would need to "scale" (or offset) each conic curve, but I do not know how something like that would be done.

If there is any work relating to this please let me know, ideally I would like to find some kind of computational geometry algorithm to implement something like this.

EDIT: I now realize that I simply cannot just displace each vertex as the edges will not displace uniformly, so I believe the answer is going to relate to conic curves. Thoughts?

EDIT: This is how I imagine a "scaling" would take place for, let's say a function similar to $\rho\left( d_n\right)\simeq\exp(d_n)$. See image here:

Imagined non-unifirm scaling of polygon edge

I know this isn't exact, but the image should make the point clear.

EDIT: It may be worth working in radial coordinates where conics are converted from rectangular to polar.

1

There are 1 best solutions below

2
On

Taking center of gravity G as the center of similitude the scaling is just zooming in or zooming out.

Erect a perpendicular through G and draw the polyhedron and polygons to verify that all sides and their increments are in the same proportion. This is homothety with respect to G (c).. similar figures similarly placed so that parallel lines at any chosen sub-interval.

It is not clear to me why the sub-interval vector should trace some curve instead of a straight line as given. If any non-linearity is to be built in, should n't that non-uniform scaling rule at least be specified?

enter image description here

As you asked in ellipse dilation with respect to an arbitrary point the polygonal sides dilate to lines and ellipses to ellipses but not polygon side straight line to any ellipse.

enter image description here