【问题标题】:SVG coords to VML coordsSVG 坐标到 VML 坐标
【发布时间】:2011-02-18 04:23:37
【问题描述】:

我有 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 尺寸/坐标

【问题讨论】:

    标签: html xml vector svg vml


    【解决方案1】:

    没关系

    我们有

    <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 中它等于 "width:1px;height: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>
    

    【讨论】:

      【解决方案2】:

      这是一个轻量级库,可将 SVG 路径转换为 ​​VML 路径SVG to VML conversion with Core Framework

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 2014-01-11
        • 2012-09-26
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多