по ситуации
если фича из серии прогрессивных улучшений, то можно хоть сразу
а вот если без её поддержки всё ломается, то я обычно начинаю где-то с 90% (и то с оговорками) и когда фича есть во всех трёх основных движках хотя бы год (и опять же с оговорками)
Genri_Rus, вначале второй, как и написано в комментах
но для общего случая нужно убедиться, что последующие полигоны находятся внутри первого, а не снаружи — если они не пересекаются достаточно по одной точке
alex0176, вообще не давать наезжать ручкам друг на друга кажется странным
но я же писал «численно», т.к. все данные есть:
ширина в пикселях известна, делим её на длину диапазона, получаем пикселей на шаг
умножаем что получилось на диаметр (2 радиуса) ручки и округляем вверх до целого, вот и получается minGap
по каким строкам? судя по всему нужен атрибут wrap="hard" (и то не факт что будет работать)
ну или дикая эвристика и ручное разбиение по пробелам (если шрифт моноширный)
а уж если шрифт произвольный, то только заполнение пословно с мониторингом высоты clientHeight, как только увеличилась — новая строка появилась (скорее всего это будет проще и для моноширного шрифта)
но по мне слишком заморочено, т.к. алгоритм учитывающий все возможные варианты перекрытий мероприятий скорее всего будет выглядеть очень спагетти-образно, и вообще не факт что будет возможным
например как должен "растягиваться" блок "16:00 - 16:20" из моего примера?
у меня давно, ещё на AM2 сокете после смены проца с Атлона на Феном материнка тоже не стартовала, пока не сбросил настройки BIOS перемычкой на плате — сильно сомневаюсь, но вдруг поможет
syb2024, так он его и удаляет, но в приведённом коде нет вывода массива после forEach()
а вообще, если нужно сделать массив пустым, то data3.splice(0, data3.length) сделает это на ура )
т.е. ещё раз: какая изначальная задача, т.к. это не задача, а какая-то странная и непонятная попытка её решить
но сразу скажу, что за один проход по массиву такой алгоритм не справится
glu-dimaz, да, мой вариант столбцы формирует по максимальной наполненности
делать что-то другое при возможности неравных перекрывающихся периодов будет слишком заморочено
однако если не показывать длительность (т.е. сделать каждый блок размером в одну строку), то можно каждый интервал обернуть во flex, что и даст нужное распределение по ширине
ничего и радоваться жизни
а если подумать, то 10-бит это на канал, умножаем на 3 и получаем те самые 30-бит