Ako je u pitanju problem iz programiranja, postoji više algoritama kako doći do rešenja:
https://en.wikipedia.org/wiki/Minimum_bounding_rectangle
1. Izračunaš tačke konveksnog omotača (poligona) koji sadrži sve tačke shape-a (convex hull).
https://en.wikibooks.org/wiki/...try/Convex_hull/Monotone_chain
Ovo je opciono, ali će algoritam biti brži ako redukuješ broj tačaka koje dalje procesiraš.
2. Isprobaš rotaciju tačaka konveksnog omotača za sve uglove od 0 do 90 stepeni sa
željenom preciznošću da bi pronašla pravougaonik najmanje površine koji sadrži sve tačke konveksnog omotača.
Ovo se opet da optimizovati - ne moraš da provervaš svaku moguću rotaciju (ugao),
već možeš da radiš binarnu pretragu do određene dubine.
Ne znam da li postoji egzaktno rešenje, i mene interesuje da li ga ima,
pa neka napiše neko ako ga zna.