У меня есть массив [width, height, x, y]
векторов, например: [[width_1, height_1, x_1, y_1],...,[width_n, height_n, x_n, y_n]]
, представляющий 2D-плоскость блоков. Этот вектор потенциально длинный (n > 10k).
Пример:
должны быть спроектированы как:
Однако проблема в том, что блоки не аккуратно сложены, а могут быть любой формы и положения.
Критерий, по которому блок должен быть проектом, не имеет большого значения. В примере я взял первый (по оси x) самый большой; что кажется разумным.
Важно то, что поддерживается список (вектор) того, какие другие блоки были закрыты проецируемым блоком. Блоки содержат важные метаданные, поэтому я должен быть в состоянии ответить на вопрос «на какой отрезок линии был спроецирован этот блок?»
Итак, как конкретно можно эффективно спроецировать 2D-плоскость на линию, в некотором смысле «отбрасывая тень», таким образом, чтобы сохранить метод наблюдения за тем, какие блоки участвуют в сегменте линии (тени)?
Изменить: хотя проблема довольно общая, конкретная проблема заключается в том, что у меня есть документ с несколькими столбцами и плавающими изображениями, для которых я хотел бы создать «мини-карту», указывающую, где найти определенные аннотации. (цвета)