У меня есть перечисление чуть менее 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);
и я подумал, что попрошу помощи, прежде чем я слишком углублюсь в кодирование. Я должен подчеркнуть уклон от слишком сложных библиотек, хотя меня больше интересуют алгоритмы, чем контейнеры, которые должны работать в системе с ограниченными ресурсами.
6x9
идентичен прямоугольнику9x6
? - person sarnold   schedule 11.02.2012