Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 2.33 KB

HISTORY.md

File metadata and controls

46 lines (31 loc) · 2.33 KB

История изменений

2019-09-09

Обнаружено, что нельзя рассчитать сумму длин, если на чертеже имеется окружность. Добавлена задача: Расчет эллипсов, сегментов, дуг и окружностей.

2019-09-08

Найдена библиотека https://www.npmjs.com/package/svgo позволяющая сделать следующее:

  • слить все трансформации к одной
  • заменить все примитивы на path

Теоретически этого достаточно, чтобы подсчитать длину всех линий.

Изменен расчет суммы длин всех path при помощи svgo.

https://www.npmjs.com/package/svgo

2019-09-07

Сделано чтение аттрибута из элементов SVG-файла при помощи xmldom и xpath.

Найден метод SVGPathElement.getTotalLength(). Теоретически с его помощью можно рассчитывать длины всех элементов path, а возможно и других элементов.

Найдена и применена библиотека point-at-length, в которой реализован метод getTotalLength(). Последнее обновление было 2 года назад.

Найдена и применена библиотека svg-path-properties, в которой реализован метод getTotalLength(). Ее отличие от point-at-length в том, что последние коммиты датируются 2019 годом.

Также найден полифил для браузеров svg-path-polyfill, но его нельзя использовать напрямую, поэтому оставлен на всякий случай, если найденные алгоритмы getTotalLength() не сработают.

Написан тестовый расчет длины линий line и path.

https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement/getTotalLength
https://www.npmjs.com/package/point-at-length
https://github.com/rveciana/svg-path-properties
https://github.com/ThePedestrian/svg-path-polyfill