В SVG (и Canvas, Quartz, Postscript,... )матрица преобразования влияет как на координаты пути, так и на ширину линии. Есть ли способ сделать настройку, чтобы ширина линии не влияла? То есть в следующем примере масштаб для X и Y разный, что превращает квадрат в прямоугольник, что нормально, но также делает линии шире с двух сторон.
<g transform="rotate(30) scale(5,1) ">
<rect x="10" y="10" width="20" height="20"
stroke="blue" fill="none" stroke-width="2"/>
</g>
Я понимаю, что во многих случаях это было бы полезно, но есть ли способ отказаться от этого? Я полагаю, что хотел бы иметь отдельное перо TM или иметь возможность настроить перо как эллипс, который CTM преобразует в круг, но я не вижу ничего подобного.
Не имея этого, я думаю, что должен не сообщать SVG о моем CTM и вместо этого самостоятельно преобразовывать координаты, что означает преобразование примитивов, таких как rect
, в их эквиваленты path
.