I have seen (and implemented) algorithms that find the 'Pole of Inaccessibility' for a polygon - that allows you to draw the largest circle within it. However, if I wanted to find the largest semi-circle that fits inside a polygon, is there a similar method?
EDIT: I use this algorithm MapBox polylabel to calculate the largest circle that will fit inside a polygon. Whilst I understand what it does, I can't really see a way to apply it to semi-circles.
I feel as if the answer might start with trying to find the longest line inside the polygon that has the smallest average distance to the boundary, which might align it close to the longest straight(ish) part of said boundary.
I re-implemented this Largest Rect in a Poly which I feel could have some bearing on my thoughts above in the way that it searches for longest lines inside the poly.
But its easy to come up with shapes where the largest semi-circle is not really approximated by either the largest circle or the largest rectangle.