Обращает порядок точек, так что полилиния идет в другую сторону.
Собственный список точек заданной полилинии обращается на месте и возвращается внутри нового объекта полилинии. Пример: [[0,0,0], [1,0,0], [2,0,0]] -> [[2,0,0], [1,0,0], [0,0,0]]
Полилиния
Полилиния с точками в обратном порядке
Разбивает полилинию на объекты линий, по одному на отрезок, каждый с начальной и конечной точкой.
Замкнутая полилиния также получает отрезок от своей последней точки обратно к первой, если они не совпадают. Пример: три точки -> две линии, или три, если замкнута
Полилиния
По одной линии на сегмент, по порядку
Разбивает полилинию на отрезки, каждый - пара точек.
Замкнутая полилиния также получает отрезок от своей последней точки обратно к первой, если они не совпадают. Меньше двух точек не дают отрезков. Пример: четыре точки, замкнутая -> четыре отрезка по петле
Полилиния
По одной паре точек на сегмент, по порядку
Строит объект полилинии из точек, незамкнутой или замкнутой.
Пример: три точки с isClosed равным true -> треугольник
Точки и соединяется ли последняя обратно с первой
Объект полилинии
Находит наибольшее скругление для каждого угла полилинии, каждое ограничено ближней половиной его отрезков, так что скругления никогда не перекрываются.
Замкнутая полилиния включает два угла на своих концах. Меньше трех точек дают пустой список.
Полилиния и допуск
По одному радиусу на каждый угол, в порядке углов
Находит один радиус скругления, подходящий каждому углу полилинии: наименьший из максимумов по углам по правилу половины отрезка.
Меньше трех точек, или любой угол, не допускающий скругления, дают 0.
Полилиния и допуск
Радиус, который подходит для каждого угла, в единицах модели
Измеряет полилинию, складывая прямые расстояния между соседними точками.
Замыкающий отрезок замкнутой полилинии не считается. Пример: [[0,0,0], [3,0,0], [3,4,0]] -> 7
Полилиния
Длина в единицах модели
Считает точки полилинии.
Пример: три точки -> 3
Полилиния
Число точек
Читает список точек из полилинии.
Пример: { points: [[0,0,0], [1,0,0]] } -> [[0,0,0], [1,0,0]]
Полилиния
Ее точки, по порядку
Находит точки, где две полилинии пересекают друг друга, проверяя каждый отрезок одной против каждого отрезка другой.
Пересечения ближе друг к другу, чем допуск, сообщаются один раз. Пример: две полилинии, образующие X -> точка посередине
Две полилинии и допуск
Точки пересечения; пустой список, если их нет
Находит точки, где полилиния пересекает саму себя.
Соседние отрезки друг с другом не проверяются, а пересечения ближе друг к другу, чем допуск, сообщаются один раз. Пример: восьмерка -> ее единственная точка пересечения
Полилиния и допуск
Точки пересечения; пустой список, если их нет
Соединяет разрозненные отрезки в полилинии, сопоставляя концы, которые сходятся в пределах допуска.
Отрезки, соединяющиеся конец к концу, становятся одной полилинией на каждую цепочку; отрезки, ничего не касающиеся, становятся полилиниями из одного отрезка. Пример: десять разбросанных отрезков, образующих две цепочки -> две полилинии
Сегменты и допуск, при котором два конца считаются соприкасающимися
Полилинии, которые образуют сегменты
Применяет матрицу преобразования, или список матриц по порядку, к каждой точке полилинии.
Пример: перенос на [5,0,0] -> каждая точка сдвинута на 5 вдоль X
Полилиния и преобразование
Новая полилиния с преобразованными точками
Полилинии: цепочки прямых сегментов через список точек, хранящиеся как простые объекты вида
{ points, isClosed }. Замкнутая полилиния соединяет свою последнюю точку с первой. Методы здесь измеряют полилинию, конвертируют ее в сегменты или линии, находят, где полилинии пересекаются, собирают разрозненные сегменты в цепочки и подбирают размер скруглений для ее углов. Длины в единицах модели.