zoukankan      html  css  js  c++  java
  • SVG图形之几何图形——学习笔记2

    SVG几何图形


    (1) 圆形<circle>

    属性:
      cx: 数值; //圆心横坐标
      cy: 数值; //圆心纵坐标
      r: 数值; //圆半径 
      stroke: color; //画笔颜色
      stroke- 数值; //画笔宽度
      fill: color; //填充颜色
    注:若忽略cx,cy,那么圆点会被设置为 (0, 0)
    
    
    
    

    (2) 矩形<rect>
    属性:

    x: 数值; //定义矩形的左侧位置
    y: 数值; //定义矩形的顶端位置
     数值; //矩形宽度
    height: 数值; //矩形高度
    stroke: color; //画笔颜色
    stroke- 数值; //画笔宽度
    fill: color; //填充颜色
    opacity: 数值; //填充整个图形颜色的透明度,即内部区域并包括stroke画笔的宽度,范围(0-1)
    fill-opacity | opacity: 数值; //只填充内部区域颜色透明度,范围(0-1)
    stroke-opacity: 数值; //画笔颜色透明度,范围(0-1)


    (3) 椭圆<eclipse>

    属性:

    cx: 数值; //椭圆中心横坐标
    cy: 数值; //椭圆中心纵坐标
    rx: 数值; //椭圆水平半径
    rx: 数值; //椭圆垂直半径
    stroke: color; //画笔颜色
    stroke- 数值; //画笔宽度
    fill: color; //填充颜色

    (4) 直线<line>

    属性:

    x1: 数值; //x 轴定义线条的开始
    y1: 数值; //y 轴定义线条的开始
    x2: 数值; //x 轴定义线条的结束
    y2: 数值; //y 轴定义线条的结束
    stroke: color; //画笔颜色
    stroke- 数值; //画笔宽度
    fill: color; //填充颜色

    (5) 多边形<polygon>

    属性:

    points: 数值; //三个或三个以上x,y坐标,每组中间用空格隔开
    stroke: color; //画笔颜色
    stroke- 数值; //画笔宽度
    fill: color; //填充颜色
    fill-rule: nonzero | evenodd | inherit

     规则:

    nonzero 规则:字面意思是“非零”。按该规则,要判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的交点情况,图形路径顺时针为从左到右,逆时针为从右到左。从0开始计数,
           路径从左向右穿过射线则计数加1,从右向左穿过射线则计数减1。得出计数结果后,如果结果是0,则认为点在图形外部,否则认为在内部。      巧记:内部区域计数结果不是零则填充颜色。 evenodd 规则:字面意思是“奇偶”。按该规则,要判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的交点的数量。如果结果是奇数则认为点在内部,是偶数则认为点在外部。      巧记:奇在内,偶在外。

    注:fill-rule若无指定规则,则默认为nonzero。

      


    (6) 曲线<polyline>

    属性:

    points: 数值; //2个或2个以上x,y坐标,每组中间用空格隔开
    stroke: color; //画笔颜色
    stroke- 数值; //画笔宽度
    fill: color; //填充颜色,若没有填充颜色,中间区域则会变成黑色。
    注意:每组y与下一组的x数值要一致。

    (7) 路径<path>

    下面的命令可用于路径数据:
    M = moveto 
    L = lineto
    H = horizontal lineto
    V = vertical lineto
    C = curveto
    S = smooth curveto
    Q = quadratic Bézier curve
    T = smooth quadratic Bézier curveto
    A = elliptical Arc
    Z = closepath
    注意:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。

    属性:

    M x,y: 移动到坐标(x,y)处
    H n: 绘制一条长n像素的水平线。n为负表示向左绘制;n为正表示向右绘制。
    V n: 绘制一条长n像素的垂直线。n为负表示向上绘制;n为正表示向下绘制。
    L x,y: 绘制一条从当前位置到坐标(x,y)的线段。
    C x1 y1 x2 y2 x y: 绘制一条从当前位置到坐标(x,y)的贝塞尔曲线,将(x1,y1)作为曲线起点的控制点,并将(x2,y2)作为曲线终点的控制点。 
    A rx ry x-axis-rotation large-arc-flag sweep-flag x y: 绘制一条从当前位置到(x,y)的圆弧,该圆弧所属椭圆的大小和方向由两个半径(rx和ry)
    以及x-axis-rotation值决定,其中x-axis-rotation值为绕x轴旋转的角度,large-arc-flag和sweep-flag的取值为0或1,指定哪条抛物线曲线渲染到屏幕上。

    (8) 文本<text> 参考网址:http://www.runoob.com/svg/svg-text.html

    属性:

    x: 数值; //文字起始横坐标
    y: 数值; //文字起始纵坐标
    fill: color; //文字颜色
    transform: rotate(angle x,y); //旋转角度angle和旋转坐标。
    <defs></defs>: 元素用于预定义一个元素使其能够在SVG图像中重复使用
    <use></use>: 在<defs>元素中定义的图形不会直接显示在SVG图像上。要显示它们需要使用<use>元素来引入它们
    <g></g>: 要引用<g>元素,必须在<g>元素上设置一个ID,通过ID来引用它。<use>元素通过xlink:href属性来引入<g>元素。注意在ID前面要添加一个#。



    (9) SVG模糊效果 参考网址:http://www.w3school.com.cn/svg/svg_filters_gaussian.asp

    属性:

    <filter>标签: id属性可为滤镜定义一个唯一的名称(同一滤镜可被文档中的多个元素使用)
    filter:url 属性用来把元素链接到滤镜。当链接滤镜 id 时,必须使用 # 字符
    <feGaussianBlur> 标签进行定义滤镜效果。fe后缀可用于所有的滤镜
    <feGaussianBlur> 标签的 stdDeviation 属性可定义模糊的程度
    in="SourceGraphic" 这个部分定义了由整个图像创建效果

    例如:

    1 <defs>
    2 <filter id="Gaussian_Blur">
    3 <feGaussianBlur in="SourceGraphic" stdDeviation="3" />
    4 </filter>
    5 </defs>
    6 <ellipse cx="200" cy="150" rx="70" ry="40"
    7 style="fill:#ff0000;stroke:#000000;
    8 stroke-2;filter:url(#Gaussian_Blur)"/>


  • 相关阅读:
    自学入门 Python 优质中文资源索引
    Crawlab Lite 正式发布,更轻量的爬虫管理平台
    一款被大厂选用的 Hexo 博客主题
    源码解读 Golang 的 sync.Map 实现原理
    探究 Go 语言 defer 语句的三种机制
    一道快速考察 Python 基础的面试题
    编写自己的 GitHub Action,体验自动化部署
    Python 2 与 3 共存了 11 年,新年就要和它道别
    30 年前的圣诞节,Python 序章被谱写
    文言文编程火了,可我完全学不懂
  • 原文地址:https://www.cnblogs.com/snow1234/p/5463243.html
Copyright © 2011-2022 走看看