我有svg文件
<svg
xmlns="http://www.w3.org/2000/svg"
xml:space="preserve" width="200px"
height=""
style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 69.1341 93.4405"
xmlns:xlink="http://www.w3.org/1999/xlink">
...
<path class="fil3 str0" d="M49.1257 35.5851c3.029,0.890254 7.2612,0.610968 12.3164,-0.468419 -5.13373,3.85796 -12.1161,4.96333 -19.7673,5.07307"/>
...
</svg>
我试图手动将其转换为vml,我得到的是
<body>
...
<v:group style="position: absolute;
left: 0pt;
top: 0pt;
width: 200px;
height: 200px;
z-index: -56;"
coordsize="100000 100000"
coordorigin="0 0" id="Слой_x0020_1">
<v:shape path="m 491257,355851 nf v 30290,8903 72612,6110 123164,-4684 -51337,38580 -121161,49633 -197673,50731 e"
strokeweight="0.126615"
fill="false"
style="width: 200px;
height: 200px;"
coordorigin="-100000 -100000"
class="fil3 str0"></v:shape>
...
</body>
问题是:我得到的图像比例不对
问题:如何正确地将svg维度/坐标转换为vml维度/坐标
最佳答案
好吧,很简单
我们有
<svg
xmlns="http://www.w3.org/2000/svg"
xml:space="preserve" width="200px"
height=""
style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 69.1341 93.4405"
xmlns:xlink="http://www.w3.org/1999/xlink">
...
<path class="fil3 str0" d="M49.1257 35.5851c3.029,0.890254 7.2612,0.610968 12.3164,-0.468419 -5.13373,3.85796 -12.1161,4.96333 -19.7673,5.07307"/>
...
</svg>
69.1341/200=0.3456705
圆形(0.3456705*10000)=3456
每像素3456个“某些单位”
在vml中,它等于“宽度:1px;高度:1px”和coordsize=“3456 3456”
结果
<body>
...
<v:group style="position: absolute;
left: 0pt;
top: 0pt;
width: 1px;
height: 1px;
z-index: -56;"
coordsize="1 1"
coordorigin="0 0" id="Слой_x0020_1">
<v:shape path="m 491257,355851 nf v 30290,8903 72612,6110 123164,-4684 -51337,38580 -121161,49633 -197673,50731 e"
strokeweight="0.126615"
fill="false"
style="width: 1px; height: 1px;"
coordorigin="-100000 -100000"
coordsize="3456 3456"
class="fil3 str0"></v:shape>
...
</body>
关于html - SVG坐标到VML坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2811492/