В 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>
Я вижу, что это было бы полезно во многих случаях, но есть ли способ отказаться от него? Я предполагаю, что я хотел бы иметь отдельную ручку ТМ или иметь возможность установить перо как эллипс, который CTM преобразует в круг, но я не вижу ничего подобного.
Не имея этого, я думаю, что мне не нужно сообщать SVG о моем CTM и вместо этого преобразовывать сами координаты, что означает преобразование примитивов типа rect
в их эквиваленты path
.