0
$\begingroup$

I am trying to minimize the edge lengths of a polygon while keeping the angles the same. I can achieve this geometrically (iteratively), however, I am looking for some related papers that can solve the problem algebraically. enter image description here

$\endgroup$
  • 1
    $\begingroup$ @douglipinski gives an answer below, but that clearly can't be what you were interested in. What is it that you would like to keep constant while doing your minimization procedure? (Because if you don't want to keep anything constant, you'd just shrink the polygon to a point and that's what gives you the minimal edge length with preserved angles.) $\endgroup$ – Wolfgang Bangerth Feb 10 '15 at 4:47
  • $\begingroup$ Thanks for the answers. What I am looking for is to find the geometric degrees of freedom of the polygon to shrink. What I keep constant is the length of the edge with minimum length and scale the other edges correspondingly. Therefore, the constants are one edge (or a specified length for the shortest edge) and the angles. $\endgroup$ – masouda Feb 10 '15 at 8:30
  • $\begingroup$ Could you please add some more details directly to your question (including the extra info in your comment). Are you allowing zero length sides? If not what is the constraint on side length? If so, my intuition is that any polygon can be shrunk to either a triangle or a single line (if two sides happen to be parallel) while preserving angles. In that case are you looking for the resulting triangle with the minimum perimeter? Can the polygons be self-intersecting? $\endgroup$ – Doug Lipinski Feb 10 '15 at 14:16
  • $\begingroup$ I think he wants to ensure that all shrunken edges are never shorter than the previously shortest edge. $\endgroup$ – Wolfgang Bangerth Feb 11 '15 at 2:22
  • $\begingroup$ Thanks for all your comments and clarifications. Let me give a very simple example: consider you have a rectangle; you can minimize the rectangle edge to a square with edge length equal to the minimum length of the shortest edge of the rectangle. This ensures that I still have the angles of the polygon constant and shrunk all the edges to be at least equal to the shortest edge. Now, the polygon can be convex or concave. $\endgroup$ – masouda Feb 11 '15 at 11:11
3
$\begingroup$

If you multiply the length of every side by a constant then all the angles will be preserved, this just produces a similar polygon. Multiply by a very small constant and you get a very small length, as small as you want, all the way down to zero.

You can do this easily if you have the $(x,y)$ coordinates of the vertices of the polygon with perimeter $L$ and area $A$. Simply multiply all the vertices by the same scaling factor, say $\alpha$, to get a new set of vertices and a polygon with perimeter length $\alpha L$ and area $\alpha^2 A$. You can avoid also translating the polygon with this rescaling by placing it with its center of area at the origin.

$\endgroup$
0
$\begingroup$

I think this doesn't solve your problem but may help you. I used mapshaper to do reduce the number of points in the polygon. You drag a polygon file into it (I used geojson) and you can change the resolution of the polygon.

Here's an example file that you can play with - a polygon from Nominatim. I used mapshaper to reduce it from 1500KB to 15KB.

Mapshaper code is on Github.

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