zoukankan      html  css  js  c++  java
  • SVG主要元素和属性

    SVG主要元素和属性
    <desc></desc>  注释<!-- -->

    <defs></defs>  预定义 待引用  <element id="name">  引用属性:url(#name)

    <use xlink:href></use>    引用元素 

    <symbol>  模版

    <image width height> width height不能省

    属性 xml:space="default|preserve" 英文空格

    属性 externalResourceRequired="false|true"  必需外部资源与否  若为true 找不到外部资源  
    不支持<switch><>选择 平台

    <rect x y width height rx ry>  rx ry椭圆半径
        圆角矩形的圆角过渡部分是一段四分之一的椭圆弧,  分别代表其半
    长轴和半短轴。当只指明了“rx”或“ry”其中的一个时,另一个缺省值与这个相等。
    如果都不指定,则缺省值为o,此时矩形的4个角为直角。如果“rx”的值大于矩形宽
    度的一半,则作为一半处理。

    <circle cx cy r >

    <ellipse cx cy rx ry>

    <line x1 y1 x2 y2>

    <polyline points="x0,y0 x1,y1  ......"> 折线

    <polygon points="x0,y0 x1,y1  ......"> 多边形

    <path d="M|L|C|S|Q|T|A|Z" length=>
        (])所有的绘图指令都只用一个字母来表示。
        (2)坐标数据和指令之间的空格可以省略,但坐标致据之间的空格显然不能省略。
        (3)问一行中出现问一条命令多次连续重复使用的情况时,命令名可以只使用第一个,
    后面的省略,不过用于数据分网的空格同样不能少。
        (4)命令名是大写字母时代表后面所跟的数据值是绝对坐标,小写字母代表相对坐标。
        (5)当绘制水平或垂直线段时,可以使用H和V命令代替L。使用H或h时,后面只需要
    加一个代表x坐标的参数,Y坐标映省与当前点相同。同样,使用v或v时,后面也只需
    要加一个代表Y坐标的参数。如果这两个命令字母后面跟了多个数值,则每一个数值被
    认为是一次单独的绘制线条的命令,而不像L和1命令那样把每两个数值结合起来作为
    一个点的一对坐标值来加以处理。
        (6)一对坐标值的XY坐标之间可以用空格或逗号隔开,但坐标对与坐标对之间只能
    用空格作为分隔符。
        (7)路径闭合命令虽然也有Z和z:两种形式,可效果是一样的,使用时没有区别。
    本命令不带参数,功能也比较简单,直接从当前点绘制一条直线到本条子路径的起点。
        (8)s和s命令是绘制“光滑”三次贝塞尔曲线的命令。一条复杂的曲线由多个曲线弧段
    所构成,弧段与弧段之间要光滑衔接,各个弧段的控制点必须满足一定条件。首先,这一
    段曲线弧的起点必须是前一段曲线弧的终点,否则连不上;其次,这一段曲线弧的第一控
    制点必须与前一段曲线弧的第二控制点呈对称关系,对称中心是这段曲线弧的起点,只有
    这样才能保证曲线衔接处的光滑。S和s命令的语法是“S X2 y2 destx desty”,省略了光滑
    曲线弧所隐含的第一个控制点的坐标。命令执行完后,当前点坐标同样停留在最后绘制的
    一段曲线弧的终点上。

    椭圆弧曲线命令用A或a来表示。其语法比较复杂,是"A rx ry x-axis-rotation large-arc-flag 
    sweep-flag x y"  "x-axis-rotation"是此段弧所在的椭圆的X轴与水平方向的夹角,也即x轴的
    旋转角度;large-arc-flag、sweep-flag决定了椭圆弧的绘制方向,值是0或1;(x,y)是椭圆弧
    终点坐标。至于圆心坐标则是自动计算出来的。

    viewBox属性 not viewbox  缺省单位度量

    transform属性 ="translate|rotate|skewX|skewY|scale|matrix(a b c d e f)"

    preserveAspectRatio属性

    <text x y textLength lengthAdjust>

    <tspan x y dx dy rotate>从属于<text>
    <svg>
      <text style="fill:#000000;font-family:Arial;font-weight:bold;font-size:40;">
        <tspan x="50" y="60,70,80,80,75,60,80,70">COMMUNICATION</tspan>
        <tspan x="50" y="150" dx="0,15" dy="10,10,10,-10,-10,-10,10,10,-10">COMMUNICATION</tspan>
        <tspan x="50" y="230" rotate="10,20,30,40,50,60,70,80,90,90,90,90,90">COMMUNICATION</tspan>
      </text>
    </svg>

    <tref xlink:href="#">引用<defs>中的<text>

    <glyphRun>

    <altGlyph xlink:href="#id">

    <altGlyphDef id="">

    <glyphRef xlink:href= glyphRef=>

    <textPath startOffset= method="align|stretch" spacing="exact|auto" xlink:href="">注意嵌套的<tspan>对
    后面的走向有叠加作用

    fill-rule属性 fill-rule="nonezero|evenodd"

    fill-opacity属性 fill-opacity="1|0~1"  

    stroke-opacity 属性

    stroke-linecap=butt|round|square

    stroke-linejoin=miter|round|bevel|

    stroke-dasharray="length spacing"

    stroke-dashoffset="0|"      表示描边时使用描边模板(如线型、渐变色彩等)的起始偏移量,
    缺省值是0,即从头开始。

    <maker makerWidth makerHeight makerUnits refX refY orient>

    marker-start:url(#) marker-mid:url(#)  marker-end:url(#)

    color-interpolation="auto|sRGB|linearRGB"

    color-rendering="auto|optimizeSpeed|optimizeQuality"

    shape-rendering="auto|optimizeSpeed|crispEdges|geometricPrecision"

    text-rendering="auto|optimizeSpeed|optimizeLegibility|geometricPrecision"

    image-rendering="auto|optimizeSpeed|optimizeQuality"

    <a xlink:href= xlink:type="simple" xlink:show="new|replace" xlink:title xlink:actuate="onRequest" 
    target="_top|_self">

    <?xml-stylesheet href=".css" type="text/css"?>

    <style type="text/css|text/xsl" media="screen|print"><!CDATA[]> </style>

    <linearGradient id x1 y1 x2 y2 gradientUnits="objectBoundingBox|userSpaceOnUse" 
    spreadMethod="pad|reflect|repeat" xlink:href="" gradientTransform="">  
    事实证明缺省时即gradientUnits="objectBoundingBox"时x 1 y1 等属性不起作用

    <radialGradient id cx cy r fx fy gradientUnits="objectBoundingBox|userSpaceOnUse" 
    spreadMethod="pad|reflect|repeat"  xlink:href="" gradientTransform="">          
     cx cy是形状圆心  fx fy是色彩中心

    <stop offset="<length>" stop-color="" stop-opacity="" >

    <pattern id x y width height patternUnits="objectBoundingBox|userSpaceOnUse" 
    viewBox="" patternTransform xlink:href="" patternTransform="">

    overflow="visible|hidden|scroll|auto"

    clip="rect(x1 y1 x2 y2)|auto"

    <clipPath id clipPathUnits="objectBoundingBox|userSpaceOnUse" clip-Path="url" 
    clip-rule="nonezero|evenodd">还可以使用文字作为剪裁路径,此时的“c加·mle”
    参数大多数情况都应该设置为“evenodd”,因为文字的轮廓通常都是交叉的。

    <mask id maskUnits="objectBoundingBox|userSpaceOnUse" x= y= width height mask="url()">

    opacity=  具有继承性和迭加性

  • 相关阅读:
    CodeForces Round #288 Div.2
    POJ 3660 Cow Contest【传递闭包】
    ZOJ 3321 Circle【并查集】
    CF 286(div 2) B Mr. Kitayuta's Colorful Graph【传递闭包】
    CF 287(div 2) B Amr and Pins
    HDU 2122 Ice_cream’s world III【最小生成树】
    HDU 1233 还是畅通工程【最小生成树】
    奶牛接力 矩阵乘法
    家谱 并差集
    昂贵的聘礼 最短路 dijkstra
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/921311.html
Copyright © 2011-2022 走看看