zoukankan      html  css  js  c++  java
  • HTML5 SVG

    HTML5 SVG

      版权声明:未经博主授权,内容严禁转载!  


     SVG 

      · SVG (Scalable Vector Graphics - 可自由伸缩的矢量图

        - 是一种使用 XML 技术扫描二维图形的语言。

      · SVG 可以使用三种方式描述二维图形。

        - 矢量图(vector graphic shapes),例如直线或者曲线构成的路径。

        - 图片(Image)

        - 文本(text)

     SVG 的优势

      SVG 可以通过文本编辑器来创建和修改。

      SVG 可以被搜索、索引、脚本化或压缩。

      SVG 可以在任何分辨率下被高质量的打印。

      SVG 可以在图像质量不下降的情况下被放大。

     SVG 与 canvas 的区别

    SVG

      - 不依赖分辨率。

      - 支持事件处理器。

      - 最适合带有大型渲染区域的应用程序(如地图)。

      - 不适合游戏。

    canvas

      - 依赖分辨率。

      - 不支持事件处理器。

      - 能够以 png 或 jpg 格式保存结果图像。

      - 最适合图像密集型游戏。

    SVG 简单示例

    绘制一个黑色蓝底的矩形:

    <svg width="100%" height="300">
      <rect x="100" y="100" width="300" height="100" fill="blue" stroke="black" stroke-width ="4" />
    </svg>

      - svg 标签:用于嵌入 svg 图像。

      - rect 标签:用于描述该图形是一个矩形。

      - xy 属性:表示矩形的左上角的坐标。

      - stroke 属性:表示该矩形的边框颜色。

      - stroke-width 属性:表示该矩形的边框宽度。

     SVG 使用方式

    单独的 SVG 文件形式

      - 使用 XML 文件定义

      作用:帮助我们直接创建一个后缀名为 .svg 的文件,内容是 xml 格式定义的。

    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

      - 制定特殊的命名空间

    <svg width="100%" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg"></svg>

      - 定义 SVG 与在 HTML 方式相同

      

    单独定义一个 circle.svg 文件

        

    填充 circle.svg 文件内容

    <?xml version="1.0" encoding = "utf-8" standalone="on"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
        <circle r = "40" cx="100" cy="50" stroke = "black" stroke-width="2" fill="red" ></circle>
    </svg> 

      circle标签是一个圆,r为半径,cx为圆心x坐标,cy为圆心y坐标,stroke为边框颜色,fill为填充颜色,stroke-width为边框宽度。

    SVG 使用方式

      使用 svg 标签嵌入在 HTML 页面。

      使用 embed、object 和 iframe 等标签嵌入在 HTML 页面中。

      内嵌在 XHTML 页面中。

    <iframe src="circle.svg" width="300" height="300" frameborder="1"></iframe>

        

    <object width="300" height="300" type="image/svg+xml" codebase="http://www.adaobe.com/svg/viewer/install" data="circle.svg">

        

     练习

       - 使用单独的  svg 文件绘制矩形。

       - 使用 svg 标签绘制矩形。

    <svg width="100%" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <rect x="100" y="100" width="50" height="81" fill="green" fill-opacity="0.3" stroke="red" stroke-opacity="0.5" stroke-width ="5" />
    </svg>

        fill-opactity="0.3"  透明度

          

    SVG 元素种类

     SVG 预定元素

       - 矩形元素

      - 圆形元素

      - 椭圆元素

      - 线条元素

      - 折线元素

      - 多边形元素

      - 文本元素

      - 图像元素

    SVG 特效元素

      - SVG 滤镜

      - SVG 渐变

     SVG 矩形元素

       

    案例代码

    <svg width="100%" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <rect width="200" height="100" style="fill:rgb(0,0,255); stroke-1;stroke:rgb(0,0,0);" />
    </svg>

        

     SVG 圆形元素

       

    案例代码

    <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <circle cx="100" cy="50" r="45" stroke="black"
          stroke-width="5" fill="red"
      ></circle>
    </svg>

         

    SVG 椭圆元素

       

    案例代码

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <ellipse cx="300" cy="150" rx="200" ry="80"
          style="fill:rgb(200,100,50);stroke:rgb(0,0,100);stroke-2"
      ></ellipse>
    </svg>

          

     SVG 线条属性

       

    案例代码:

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <line x1="0" y1="0" x2="300" y2="300"
        style="stroke:rgb(99,99,99);stroke-2"
      ></line>
      <line x1="300" y1="300" x2="500" y2="0"
        style="stroke:rgb(255,00,00);stroke-5"
      ></line>
    </svg>

        

     SVG 折线元素

        

    案例代码

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <polyline points="0,0 0,20 20,40 40,40 40,60"
          style="fill:white;stroke:red;stroke-2"
      ></polyline>
    </svg>

           

     SVG 多变形元素

       

    案例代码

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <polygon points="200,100 300,210 170,250"
          style="fill:#cccccc;stroke:#000000; stroke-1"
      ></polygon>
    </svg>

        

    SVG 文本

       

    案例代码

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <text x="50" y="50" font-size="16" font-family="verdana">
        王佳伟
      </text>
    </svg>

        

     SVG 图像

       

    案例代码

    <style media="screen">
      svg{
        border: 1px solid #555555;
      }
    </style>
    
    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <image xlink:href="3.jpg" x="50" y="30" width="500" height="300"></image>
    </svg>

     SVG 高斯模糊滤镜元素

       

     案例代码

    <svg width="1000" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <defs>
          <filter id="f1" x="0" y="0">
            <feGaussianBlur in="SourceGraphic" stdDeviation="15">
            </feGaussianBlur>
          </filter>
      </defs>
      <rect width="100" height="100" stroke="green" stroke-width="3" fill="yellow" filter="url(#f1)"></rect>
    </svg>

        

      

      

     SVG 渐变元素

      

    SVG 渐变元素 - 线性渐变

      

  • 相关阅读:
    大文件处理
    查看系统声卡信息
    C# 禁止程序多个实例运行
    C#绘制传感器代码
    Arcgis 属性表模糊查询
    Python筛选Excel列数据,并导出!
    c#实现:返回n到m之间的所有素数
    C# 判断一个整数是否是素数!使用bool IsPrim(int n)实现!
    打开Arcgis,ArcToolbox却打不开,还闪退!!!
    AE常用功能
  • 原文地址:https://www.cnblogs.com/wjw1014/p/8966257.html
Copyright © 2011-2022 走看看