zoukankan      html  css  js  c++  java
  • SVG

    SVG(Scalable Vector Graphics)  可缩放的矢量图,是用XML语言做的可缩放的矢量图 ;

    位图与矢量图

    位图:是基于颜色的描述。图上的每个像素点整体构成了一张图片。用PS做的图都是位图。

    矢量图:是基于数学的描述。矢量图是用数学中的直线和曲线去描绘图的边框,然后用颜色去填充这些线组成的区域。用AI和Coredraw做的图是矢量图。

    SVG的优缺点

    优点:

    1. 文件小,占空间小,网络传输快.

    2. 缩放不变形

    3. 可高精度打印

    4. 可用文本编辑器编辑

    缺点:

    难以表现色彩层次丰富的逼真图像效果。

    矢量图的使用方法

    1. 直接用浏览器打开

    2. 用img的src属性调用

     <img src ='../images/XX.svg' alt='' />
    

    3. 可以做为盒子的背景图调用

        
    div {
        background:url(images/XX.svg);
    }

    4. 使用svg标签调用

    <svg  xmlns='http://www.w3.org/2000/svg' width='500' height='400' >
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'/>
    </svg>

    svg标签上有一个命名空间,是为了解决重名的问题。可以认为是一种固定的写法:xmlns=”http://www.w3.org/2000/svg”

    基本图形

    rect    矩形 可以写成双标签 ,也可以写成单标签

    <svg  xmlns='http://www.w3.org/2000/svg' width='500' height='400' >
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'/>
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'></rect>
    </svg>

    基本参数:

    circle 圆形

    ellipse   椭圆

    line  画线段

     

    polyline   多条线 

    polygon  多边形

    非基本图形用path

    基本属性

    fill           表示填充的颜色

    stroke        表示描边

    stroke-width   表示描边的宽度

     SVG动画

    <animate attributeType=”XML” attributeName=”发生动画的属性名” from=”起始值” to=”结束值” dur=”动画时间” fill=”freeze” begin=”开始时间” repeatCount=”indefinite”></animate>

    SVG动画是通过animate标签实现的。要嵌套在发生动画的标签里面。

    attributeType    表示发生动画属性的类型,因为SVG是用XML语言写的,所以attributeType就是XML ;

    attributeName  表示发生动画属性名

    from                  发生动画的起始位置

    to                      发生动画的终止位置

    dur(duration的前三个字母)   动画时长

    fill=”freeze”      表示动画停留在终点。在CSS3中,用的是forwards,在SVG中,用的是freeze。

    repeatCount   表示动画运行的次数

    repeatCount="indefinite"   表示无数次运动,在CSS3中,用的infinite,在SVG中,用的是indefinite。

    如果需要往复运动,需要写两个动画,一个是从起点到终点;另一个是从终点到起点。然后用begin属性设置他们各自动画的开始时间,一个animate的begin设置为”0s;第二个动画.end”;第二个animate的begin设置为”第一个动画.end”。

    在”动画.end”之后可以添加一个时间,以表示等待的时长。

    <svg  xmlns='http://www.w3.org/2000/svg' width='1500' height='400' >
    
        <rect x="100" y="100" width="100" height="100" fill="orange">
            <animate id="leftToRight" attributeType="XML" attributeName="x" from="100" to="1000" dur="3s" begin="0s;rightToLeft.end+2s" fill="freeze" />
            <animate id="rightToLeft" attributeType="XML" attributeName="x" from="1000" to="100" dur="3s" begin="leftToRight.end+2s" fill="freeze" />
            <animate attributeType="XML" attributeName="fill" from="orange" to="blue" dur="12s" fill="freeze" />
        </rect>
    
    </svg>
  • 相关阅读:
    强化学习框架RLlib教程003:Training APIs的使用(二)基础pythonAPI
    强化学习框架RLlib教程002:Training APIs(一)快速入门与配置项
    强化学习框架RLlib教程001:Ray和RLlib介绍
    强化学习原理源码解读004:A3C (Asynchronous Advantage Actor-Critic)
    强化学习原理源码解读003:Actor-Critic和A2C
    强化学习原理源码解读002:DQN
    强化学习原理源码解读001:Policy Gradient
    部署服务包卡住不打日志排查问题
    [转]Angular Reactive Forms -- Model-Driven Forms响应式表单
    AWS DMS MySql数据同步Elasticsearch
  • 原文地址:https://www.cnblogs.com/qcxc/p/7420630.html
Copyright © 2011-2022 走看看