23.01.2020, 16:32
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Порядок расположения блоков
Из массива описывающего координаты/размеры блоков требуется указать их размеры в порядке их расположения. Для этого, для №23 отсортировали вложенные массивы по минимуму координаты X с сохранением ключей, взяли их ширину, затем, берутся отсортированные по минимуму координаты Y и по ключам массива X получается высота.
Но блоки могут иметь и расположение сверху вниз как у №21, поэтому порядок их размеров будет указан неверно. Как минимумом проходов по массивам можно определить (по какому признаку/условию), что расположение блоков, назовем условно, альбомное или портретное?
Последний раз редактировалось laimas, 12.10.2020 в 16:58.
|
|
23.01.2020, 17:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
laimas,
может взять вертикальную/горизонтальную линию по середине и проверить все блоки на пересечение, если половина блоков принадлежит линии то портретное/альбомное.
|
|
23.01.2020, 17:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Почему половина и по какой из половин проверять? Ведь, допустим, определили, что половина сверху до оси X середины подпадает под определение "портрет", а ниже координаты X будет слева блок, то определение будет неверным. Или я не понял идеи.
|
|
23.01.2020, 17:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
laimas,
определить прямоугольник в который входят все блоки, согнуть его напополам и смотреть количество блоков в месте сгиба, для надёжности можно согнуть по вертикали и горизонтали и смотреть что больше.
|
|
23.01.2020, 17:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от рони
|
определить прямоугольник в который входят все блоки
|
Это общая площадь, она определяется также. То есть взяли координаты этой пощади, затем определяем сколько вхождений координат блоков попадет в ее части слева/справа сверху/снизу?
|
|
23.01.2020, 18:04
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
laimas,
может смотреть где следующий блок справа или снизу?
|
|
23.01.2020, 18:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Вот воочию расставил и разделил. Если считать вхождения, то получится, что по вертикали больше, но в данном случае нужно считать слева на право, сверху вниз.
Последний раз редактировалось laimas, 12.10.2020 в 16:58.
|
|
23.01.2020, 18:18
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от рони
|
может смотреть где следующий блок справа или снизу?
|
Да, получается что так - больше, но нет смежных по другой оси.
|
|
23.01.2020, 18:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Все, вот так будет самое выгодное - начинать проверку всегда по оси Y сверху вниз, как только обнаруживается другой блок по оси X, остановка, это "альбом", иначе считать порядок сверху вниз.
|
|
23.01.2020, 18:53
|
|
Профессор
|
|
Регистрация: 20.12.2009
Сообщений: 1,714
|
|
Сообщение от laimas
|
Порядок расположения блоков
|
Сообщение от laimas
|
Из массива описывающего координаты/размеры блоков требуется указать их размеры в порядке их расположения.
|
Сообщение от laimas
|
Как минимумом проходов по массивам можно определить... что расположение блоков, назовем условно, альбомное или портретное?
|
Вы хотите отсортировать эти прямоугольники на плоскости или определить, что они все ориентированы одинаково?
|
|
|
|