这部分包括三个内容:

1. 基本图形

2. 基本属性

3. 基础操作API

基本图形

名称

描述

参数

图示

rect

定义一个矩形

x="矩形的左上角的x轴"

y="矩形的左上角的y轴"

rx="x轴的半径(round元素)"

ry="y轴的半径(round元素)"

width="矩形的宽度"。必需的。

height="矩形的高度"。必需的。

circle

定义一个圆

cx="圆的x轴坐标"

cy="圆的y轴坐标"

r="圆的半径". 必需.

ellipse

定义一个椭圆

cx="椭圆x轴坐标"

cy="椭圆y轴坐标"

rx="沿x轴椭圆形的半径"。必需。

ry="沿y轴长椭圆形的半径"。必需。

line

定义一条线

x1="直线起始点x坐标"

y1="直线起始点y坐标"

x2="直线终点x坐标"

y2="直线终点y坐标"

polygon

定义一个多边形

points="多边形的点。点的总数必须是偶数"。必需的

polyline

定义一条折线

points=折线上的"点"。必需的

path

定义一个路径

d="定义路径指令"

  • M = moveto

  • L = lineto

  • H = horizontal lineto

  • V = vertical lineto

  • C = curveto

  • S = smooth curveto

  • Q = quadratic Belzier curve

  • T = smooth quadratic Belzier curveto

  • A = elliptical Arc

  • Z = closepath

PS:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。

pathLength="如果存在,路径将进行缩放,以便计算各点相当于此值的路径长度"

transform="转换列表"

PS:图示来自慕课网教程。

基本属性

名称

描述

fill

填充颜色

stroke

文本或元素轮廓颜色

stroke-width

文本或元素轮廓厚度

transform

图形变换

基础操作API

名称

描述 参数说明
document.createElementNS(namespaceURI, qualifiedName[, options]) 创建图形 由于篇幅很大,请查看一下地址:
https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS
namespaceURI:XML命名空间,避免元素命名冲突的方法。
例如:
HTML - Use http://www.w3.org/1999/xhtml
SVG - Use http://www.w3.org/2000/svg

element.appendChild(childElement)

添加图形

向节点添加最后一个子节点。

element.setAttribute(name, value)

element.getAttribute(name)

设置/获取属性

设置/获取属性

完整示例

<style>
.demo{
fill:red;
stroke:black;
stroke-width:4;
opacity:0.5;
}
</style>
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <rect x="20" y="20" rx="20" ry="20" width="250" height="100" class="demo"/>
  <circle cx="60" cy="200" r="40" class="demo"/>
  <ellipse cx="80" cy="300" rx="60" ry="20" class="demo"/>
  <line x1="20" y1="350" x2="300" y2="350" class="demo"/>
  <polygon points="220,150 300,210 170,250" class="demo"/>
  <polyline points="20,400 60,400 60,450 100,450" class="demo"/>
  <path d="M250 400 L150 450 L350 450 Z" class="demo"/>
</svg>

效果:

注意:

1. 由于绘制路径(path)的复杂性,因此强烈建议使用SVG编辑器来创建复杂的图形。

2. 详细文档可以查看:https://www.w3.org/TR/SVG/

参考文献

1. http://www.runoob.com/svg/svg-reference.html 【SVG 参考手册】

2. http://www.imooc.com/learn/143

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5964391.html

SVG入门的更多相关文章

  1. 数据可视化-svg入门基础(二)

    接上一篇:数据可视化-svg入门基础(一),基础一主要是介绍了svg概念,元素样式设置等. svg是(scalable vector graphic)伸缩矢量图像. 一.目录 (1)图形元素 (2)文 ...

  2. svg入门详解

    一.svg是什么? SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG 是使用 XML 来描述二维图形和绘图程序的语言. SVG 图像在放大或改变尺寸的情况下其图 ...

  3. SVG 入门——理解viewport,viewbox,preserveAspectRatio

    工欲善其事必先利其器,没有真正搞懂SVG里的viewport,viewbox, preserveAspectRatio这三个属性,就很容易遇到坑,最近写项目用到svg这三个属性被我一眼就略过 ,后来发 ...

  4. 数据可视化系列--svg入门基础(一)

    一.前言 1.SVG(Scalable Vector Graphics)可伸缩矢量图形 特点: (1)使用xml格式来定义图形: (2)用来定义web上的使用的矢量图: (3)改变图像尺寸,图片质量不 ...

  5. SVG 新手入门

    svg 入门新认知 一.第一步创建设置svg <svg width="100%" height="500"> </svg> 设置粗细 5 ...

  6. SVG 相关整理

    1. 中文参考手册: http://www.runoob.com/svg/svg-reference.html SVG HTML5 资源教程 http://www.html5tricks.com/ta ...

  7. Canvas游戏计算机图形教程

    TechbrooD   主站 WOW 登录   注册 0首页 1简介 1.1WWW 技术变迁和生态 1.2WWW 学习建议 1.3WWW 互联网基础知识 1.4WWW Web 1.5 WWW Web ...

  8. SVG-概述/容器与通用属性

    参考: SVG 图像入门教程 MDN SVG SVG教程 SVG入门-踏得 工具: svg在线编辑 概述 SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector ...

  9. 突袭HTML5之SVG 2D入门1 - SVG综述////////////////zzzzzzzz

    以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...

随机推荐

  1. SVN版本冲突,导致出现Files 的值“ < < < < < < < .mine”无效

    只要根据错误提示,找到相应文件夹下的\obj\Debug文件夹下的 相应名字.csproj.FileListAbsolute.txt, 打开并删除含有'<<<<<< ...

  2. 烂泥:wiki系统confluence5.6.6安装、中文、破解及迁移

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它 ...

  3. 挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...

  4. Netty5使用自签证书实现SSL安全连接

    这次使用的Netty是最新的5.0 Alpha2版本,下载地址是:http://dl.bintray.com/netty/downloads/netty-5.0.0.Alpha2.tar.bz2,发布 ...

  5. 将mvc2升级到mvc4

    万万没想到大二时候参加中国大学生计算机大赛的一个项目正是当前项目所需! 时间紧任务重,还好之前的项目稍微改改即可交付使用,但是还是缺少一些功能模块,巧合的是,缺少的这个功能模块是今年刚刚完成的基于mv ...

  6. 不要听吹牛逼什么前端MVVM框架就是好,其实都是一帮没学好分层设计的搞出来的,让你彻底看清前端MVVM的本质

    最近前端圈子里面,发现大家都在热炒概念,什么knockout,angularJs,都被捧成神了,鄙人不才,最近心情也不好,特地写这篇文章来找骂 写代码的码农都知道,Java社区虽然不是一个提出分层思想 ...

  7. 浏览器怎么添加 Axure扩展程序

    步骤   本文以强大如斯的谷歌浏览器来说明,怎么查看Axure原型文件,怎么添加Axure RP扩展程序.Axure RP生成的原型文件,一般都是可以用浏览器打开的, 如:一般都有index.star ...

  8. mysql向表中某字段后追加一段字符串:

    mysql向表中某字段后追加一段字符串:update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串update table_n ...

  9. [原创]mybatis详解说明

    mybatis详解 2017-01-05MyBatis之代理开发模式1 mybatis-Dao的代理开发模式 Dao:数据访问对象 原来:定义dao接口,在定义dao的实现类 dao的代理开发模式 只 ...

  10. 解析大型.NET ERP系统 自动更新

    C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. ...