How to minimize the maximum aspect ratio of two subpolygons?

I would like to cut a convex polygon into two with a given area ratio using a straight line, so that a larger aspect ratio of the two sub-polygons is minimized.

My approach at the moment involves choosing a random starting point, calculating the corresponding end point, which divides the polygon into target areas, and then calculates the larger of the two aspect ratios. Repeating this many times until I got to a minimum!

The aspect ratio of the polygon A is defined as:

asp(A) := diam(A)^2 / area(A)

+5
source share
2 answers

, , , ( Mathematica).

  • , , (1/2 n (n-1)): ( , )

enter image description here

, :

enter image description here

, , . , :

enter image description here  - belisarius, , Min Max . , , , , . Mathematica Interval :

enter image description here

, :

containsRatioQ[area1_, area2_, areaBetween_, ratio_] := 
 IntervalMemberQ[areaRatioInterval[area1, area2, areaBetween], ratio]
  • paramater labda, mu (, )

    \[Lambda] -> (2*aL + givenAreaRatio*(-2* aR + (p1y - p3y)*(p2x - p4x) - (p1x - p3x)*(p2y - p4y)) + (1 + givenAreaRatio)*(p1x*p3y - p3y*p4x + p1y*(-p3x + p4x) - p1x*p4y + p3x*p4y)*\[Mu])/ ((1 + givenAreaRatio)*((-p2x)*p4y + p1x*(-p2y + p4y) + (p1x - p2x)*(p3y - p4y)*\[Mu] + p1y*(p2x + p4x*(-1 + \[Mu]) - p3x*\[Mu]) + p2y*(p4x + p3x*\[Mu] - p4x*\[Mu])))

mu labda:

\[Mu] -> (-2*aL + givenAreaRatio*(2*
       aR - (p1y - p3y)*(p2x - p4x) + (p1x - p3x)*(p2y - p4y)) + (1 + 
      givenAreaRatio)*((-p1x)*p2y + p1y*(p2x - p4x) + p2y*p4x + 
      p1x*p4y - p2x*p4y)*\[Lambda])/
   ((1 + givenAreaRatio)*((-p3y)*p4x + p3x*p4y + 
     p1y*(p3x - p4x)*(-1 + \[Lambda]) - 
     p1x*(p3y - p4y)*(-1 + \[Lambda]) + ((-p2y)*p3x + p2x*p3y + 
        p2y*p4x - p2x*p4y)*\[Lambda]))

p1, p2, p3, p4 , , aL - "" , aR - "" (. ).

  • . , mu, lambda 0 1, .

  • . Mathematica:

    NMinimize[{Max[aspectRatio[area1tot], aspectRatio[area2tot]], \[Mu]range[[1]] <= \[Mu] <= \[Mu]range[[2]]}, \[Mu]]

are1tot area2tot , mu lambda, mu.

  • 1. - (+ mu), - ( + mu).

enter image description here

  • , , " " :

enter image description here

Mathematica, . .

+6

, , , . Mathematica ( ), , , .

:

  • ,
  • ,

. - :

,

enter image description here

:

enter image description here

, , , , - Min() Max[] :

 { (S1+S2)/S3, S3/(S1+S2), (S2+S3)/S1, S1/(S2+S3) }

Max Min , .

NB:

-, , , , .

{x, y} = {A} + t {B- A} 

- :

enter image description here

, , ( ). ideone, , ,

. , .

() . .

- . , , , .

, :

enter image description here

:

enter image description here

x .

, ...

+5

All Articles