Jak uczynić szerokość obrysu odporną na bieżącą macierz transformacji

W SVG (i Canvas, Quartz, Postscript, ...) macierz transformacji wpływa zarówno na współrzędne ścieżki, jak i na szerokość linii. Czy istnieje sposób na dostosowanie, aby nie wpływać na szerokość linii? Oznacza to, że w poniższym przykładzie skala jest różna dla X i Y, co sprawia, że ​​kwadrat jest prostokątem, który jest OK, ale także powoduje, że linie są szersze z dwóch stron.

<code>  <g transform="rotate(30) scale(5,1) ">
      <rect x="10" y="10" width="20" height="20" 
            stroke="blue" fill="none" stroke-width="2"/>
  </g>
</code>

Widzę, że byłoby to przydatne w wielu przypadkach, ale czy istnieje sposób, aby się z tego wycofać? Przypuszczam, że chciałbym mieć osobne pióro TM lub być w stanie ustawić pióro jako elipsę, którą CTM przekształca w okrąg, ale nic takiego nie widzę.

Brakuje mi tego, myślę, że nie muszę mówić SVG o moim CTM i zamiast tego sam transformować współrzędne, co oznacza konwertowanie prymitywów takich jakrect Do ichpath odpowiedniki.

questionAnswers(2)

yourAnswerToTheQuestion