㈠ 怎樣求包含在多邊形內的最大矩形
我以前做過求任意封閉區域最小外接矩形的演算法。不過你這個是求最大內接矩形,難度大很多。建議你到中國期刊網上搜索相關演算法。
我求最小外接矩形是用了旋轉邊界點的方法,我想應該也能求出最大內接矩形,不過運算量會很大。
我的方法是一種近似演算法,精確度很高(因為屏幕上的點是離散的)。
基本思想:每次以◎角旋轉邊界點,旋轉後求出一個面積最大的正內包含矩形(記錄下來)。直到一共轉過90度,這樣可得到90/◎個正內包含矩形,其中最大的就是該封閉區域的最大內包矩形。
正內包含矩形是指由水平和垂直線段構成的內包含矩形。
問題的最大難點就是:要求出每次旋轉後的最大的正內包含矩形。一個簡單想法:每隔M點取出一點,求出N/M(N為總點數)個正內包含矩形取最大的那個。
這樣做就很近似了。
求一個點的正內包含矩形應該不難。