私はちょうど32未満の絶対矩形サイズの列挙体を持っています。私は次元を与え、私の列挙の中で最良の近似を見つける必要があります。矩形近似アルゴリズム
私はif
とelse
のネストされたたくさんのものを公式化しているスパゲッティコードより優れた(つまり読みやすく保守可能な)方法がありますか?
enum imgOptsScale {
//Some relative scales
w005h005 = 0x8,
w010h010 = 0x9,
w020h020 = 0xA,
w040h040 = 0xB,
w070h070 = 0xC,
w100h100 = 0xD,
w150h150 = 0xE,
w200h200 = 0xF,
w320h320 = 0x10,
w450h450 = 0x11,
w200h010 = 0x12,
w200h020 = 0x13,
w200h070 = 0x14,
w010h200 = 0x15,
w020h200 = 0x16,
w070h200 = 0x17
};
imgOptsScale getClosestSizeTo(int width, int height);
を、私は私はあまりさらにアップコーディングに入った前に、私は助けを求めるだろうと思った:私はちょうど持っている瞬間
。あまりにも精巧な図書館からの偏見を強調すべきですが、私はアルゴリズムよりもリソースに制約のあるシステムで実行するはずのコンテナよりも興味があります。
"ベスト"をどのように定義していますか?それは[ユークリッド距離](http:// en。wikipedia.org/wiki/Euclidian_distance)を四角形の_area_に置き換えますか?または、ユークリッド距離を両辺の合計よりも大きくすることはできますか?または両側の個別に? '6x9'四角形は' 9x6'四角形と同じですか? – sarnold
6x9は9x6と同一ではありません。私は画像を提示しており、スケーリングはひどく逆転しています。最高のところでは、私はまだ分かりません。相対的なスケーリングのために、私は大部分が4分の1の画面と半画面の四角から離れて高さを調整しました。 – John
私は列挙の各次元を別々に取って、それがすべて列挙されていることを確認する必要があると思います。それでは、それぞれの次元を単純に近似することができます。パーマとコンボの式はどこにありますか? – John