Шкала независимых элементов

У меня есть (2D) библиотека вычислительной геометрии, над которой я работаю, и я хотел бы иметь возможность выкладывать изображения, чтобы помочь в отладке. Я хочу примитивы - это точки, отрезки и текст. Но я заранее не знаю, в каком масштабе мне будет интересно посмотреть (может быть, только небольшая часть многоугольника работает неправильно), поэтому мне нужно иметь возможность масштабировать и перемещаться по изображению.

Я подключилSVGPan панорамирование и масштабирование моих сгенерированных изображений при просмотре их в Chrome, но (понятно) все примитивы масштабируются с масштабированием, поскольку SVGPan работает только с использованием преобразования масштабирования. Таким образом, увеличение не помогает выяснить, что происходит в очень маленьких функциональных областях.

Я нашелвектор-эффект свойство, которое довольно хорошо фиксирует отрезки, позволяя указать ширину в пикселях. Но это не помогает мне управлять текстом. В идеале это должно быть 12 pt независимо от того, насколько велик масштаб преобразования.

И я также до сих пор в растерянности относительно рисования точек. Я думал, что могу использовать круги, но радиус также масштабируется, поэтому, если вы увеличите масштаб слишком сильно, он будет выглядеть как группа кругов вместо точек. Если я использую свойство векторного эффекта, ширина обводки круга больше не будет масштабироваться, но радиус круга все равно будет изменяться. В итоге я получаю большие круги с тонкими контурами, а не маленький круг с радиусом в один или два пикселя.

Есть ли способ масштабировать позиции только для элементов? Я действительно всегда хочу, чтобы линии, точки и текст отображались одинакового размера независимо от масштаба и имели только масштаб своих позиций. Все мои SVG-файлы сгенерированы на компьютере и предназначены исключительно для написания кода, поэтому я не возражаю против лишних взломов, если у кого-то есть идеи. Или, если вместо SVG существует другая технология, которая имеет больше смысла для этого варианта использования.

Ответы на вопрос(1)

Ваш ответ на вопрос