Порядок расположения блоков
Из массива описывающего координаты/размеры блоков требуется указать их размеры в порядке их расположения. Для этого, для №23 отсортировали вложенные массивы по минимуму координаты X с сохранением ключей, взяли их ширину, затем, берутся отсортированные по минимуму координаты Y и по ключам массива X получается высота.
Но блоки могут иметь и расположение сверху вниз как у №21, поэтому порядок их размеров будет указан неверно. Как минимумом проходов по массивам можно определить (по какому признаку/условию), что расположение блоков, назовем условно, альбомное или портретное? |
laimas,
может взять вертикальную/горизонтальную линию по середине и проверить все блоки на пересечение, если половина блоков принадлежит линии то портретное/альбомное. |
Почему половина и по какой из половин проверять? Ведь, допустим, определили, что половина сверху до оси X середины подпадает под определение "портрет", а ниже координаты X будет слева блок, то определение будет неверным. Или я не понял идеи.
|
laimas,
определить прямоугольник в который входят все блоки, согнуть его напополам и смотреть количество блоков в месте сгиба, для надёжности можно согнуть по вертикали и горизонтали и смотреть что больше. |
Цитата:
|
laimas,
может смотреть где следующий блок справа или снизу? |
Вот воочию расставил и разделил. Если считать вхождения, то получится, что по вертикали больше, но в данном случае нужно считать слева на право, сверху вниз.
|
Цитата:
|
Все, вот так будет самое выгодное - начинать проверку всегда по оси Y сверху вниз, как только обнаруживается другой блок по оси X, остановка, это "альбом", иначе считать порядок сверху вниз.
|
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 13:23. |