Вообще для растра задачу можно решить "в лоб", если исключить перекрытия, т.к. они не имеют смысла и ничего не экономят. Можно разместить фигуру и определить размер прямоугольника, после сформировать "сетку" с размером ячейки равной размеру прямоугольника, далее смещая данную сетку по обоим осям последовательно (понадобится X*Y шагов, где X и Y размер прямоугольника) в каждом смещении нужно посчитать количество прямоугольников, которые содержат хотябы 1 часть фигуры, выбрать то смещение сетки, при котором количество листов будет минимальным.
Далее можно провести "оптимизацию" полученной схемы, производя смещения рядов, и вычисляя число листов занятых изображением, выбирая минимальное смещение. После оптимизации рядов оптимизация столбцов будет невозможной из за смещения рядов, то есть тут нужно по идее провести оптимизацию столбцов и посчитать число листов занятых изображением, затем вернуть все обратно к первоначальному смещению и повторить оптимизацию для столбцов, посчитать сколько занято листов и выбрать какая оптимизация была лучше. Алгоритм не гарантирует "алгоритмического" решения, но даст высокое качество результата.
Lexa1981: вот после таких "отключу к чертям" лифты вредить людям начинают:) Лучше отослать производителю, не думаю что обойдется сильно дорого, но так будет лучше в любом случае, чем если "полный чайник" будет "заниматься ремонтом" того, что потом если заглючит может нанести вред человеку
dotrem: Соболезную:) Заказчик наверняка какая ни будь бабушка из бухгалтерии, которая не знает как excel пишется:) Если не будет сложного форматирования можно попытаться сделать заполнение строками, и фиксировать их высоту, в худшем случае часть данных не будет видна. Можно сделать "ход конем" и таблицу нагло импортировать в документ связанным документом excel как объект, тогда "контроль" за строками будет проще организовать.
если убрать слово "напрямую" и фразу "без костылей" то да, это сработает, по факту нужен механизм вроде клиент-сервер, если такого нет тогда ок, буду искать другие пути
p.s. почему я назвал ADB костылем? Потому что в контексте задачи тоскать с приложением android SDK мягко говоря неправильно, а выдрать из него только ADB не получится.
Дядька Серёжа: вообще можно сделать проще, т.к. телефонов\планшетов и т.п. не бесконечное число можно выяснить маки всех (помониторить на точке доступа когда клиентов нет) и добавить их в черный список
dotrem: Это не причина, любой документ в Word, какой бы заковыристый он не был можно сделать в Excel так, что при распечатки отличить первый от второго будет невозможно, сам таких "официальных" документов перелопатил десятки, теперь большая часть из них автоматизирована макросами и живет в екселе.
chapter13: этот вариант тоже проверял, чувствуется конечно отлично, но они обладают сильной инерцией и не могут остановиться больше 100 мс, что для конкретного проекта слишком много.
gbg: Не думал что нефтянники это где то используют, за статью спасибо, узнал много нового, но субъективной оценки в данном случае было бы более полезно)
А примерно насколько "реально", насколько нужно "напрягать мозги" чтобы почувствовать? Ясно чувствуется или нужно постараться чтобы почувствовать?
Вопрос к тому, что человек должен успеть понять что "играет или не играет" меньше чем за 300 мс в идеале, то есть должен явно чувствовать.
Incidence: не совсем понятно как идея обучалки связана с lock скрином?:) если уж на то пошло, ребенок может догадаться не выключать его например, чтобы не пришлось "решать задачки"
Далее можно провести "оптимизацию" полученной схемы, производя смещения рядов, и вычисляя число листов занятых изображением, выбирая минимальное смещение. После оптимизации рядов оптимизация столбцов будет невозможной из за смещения рядов, то есть тут нужно по идее провести оптимизацию столбцов и посчитать число листов занятых изображением, затем вернуть все обратно к первоначальному смещению и повторить оптимизацию для столбцов, посчитать сколько занято листов и выбрать какая оптимизация была лучше. Алгоритм не гарантирует "алгоритмического" решения, но даст высокое качество результата.