渲染SVG标记时的转换顺序

时间:2012-03-27 22:02:15

标签: svg marker

我想知道应该以什么顺序应用转换来渲染具有

的标记
  1. 有变换元素 - transform =“scale”
  2. MarkerUnits属性 - 设置为“strokeWidth”
  3. 和“refX”属性设置
  4. SVG看起来像这样

    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3.51615in"
        height="0.244444in" viewBox="0 0 253.163 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st3">
    

    <style type="text/css">
    <![CDATA[
        .st1 {marker-end:url(#mrkr4-6);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.239976}
        .st2 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.068959096269629}
        .st3 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
    ]]>
    </style>
    <defs id="Markers">
        <g id="lend4">
            <path d="M 2 1 L -0 0 L 2 -1 L 2 1 " style="stroke:none"/>
        </g>
        <marker id="mrkr4-6" class="st2" refX="-29.002700270027" orient="auto"
                markerUnits="strokeWidth">
            <use xlink:href="#lend4"/> <!--transform="scale(-14.501350135013)"--> 
        </marker>
    </defs>
    <g id="shape1-1" transform="translate(7.78146,-0.16)">
        <path d="M0 8.96 L230.64 8.96" class="st1"/>
      </g>
    

    我首先按照“shape1-1”(0.239976)的笔触宽度缩放矩阵,然后用refX(-29.002700270027)翻译该矩阵,然后我将矩阵转换到标记应该在路径上的位置(最后一点( 230.64 8.96),这是一个结束标记)。最后我考虑了use元素的transform属性。这似乎不是正确的顺序。它没有正确呈现。

    另外,一个相关的问题。当我在我的标记元素中时,我将MarkerUnits设置为“strokeWidth”,哪个笔划应该使用路径元素上设置的笔触宽度(0.239976)或标记元素上的笔划宽度(0.068959096269629)?

0 个答案:

没有答案