SVG 基础图形
SVG 基础图形
SVG包含了以下的基础图形元素:
- 矩形(包括可选的圆角),使用
<rect>元素创建 - 圆形,使用
<circle>元素创建 - 椭圆形,使用
<ellipse>元素创建 - 直线,使用
<line>元素创建 - 折线,使用
<polyline>元素创建 - 多边形,使用
<polygon>元素创建
理论上,这些基础图形元素都能用<path>元素来构建的相同的图形。并且所有可用于<path>元素的属性都可以应用在这些基础图形上。
rect 元素
<rect>元素定义了一个与当前用户坐标系轴对齐的矩形。而圆角的矩形可以通过设置元素的 rx 和 ry属性来实现。
属性定义:
- x =
<坐标点>,矩形左上角在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。 - y =
<坐标点>,矩形左上角在当前用户坐标系中的y轴坐标,默认值为0。是否可动画:是。 - width =
<长度>,矩形宽度,默认值为0。是否可动画:是。 - height =
<长度>,矩形高度,默认值为0。是否可动画:是。 - rx =
<长度>,矩形X轴的圆角半径,默认值为0。是否可动画:是。 - ry =
<长度>,矩形y轴的圆角半径,默认值为0。是否可动画:是。
圆角规则:
- rx和ry必须是一个长度值。
- 如果没有对rx和ry给出定义,那么它们都会被设为0。 (这样他们会是一个尖角的矩形)
- 如果只对rx进行了赋值,那么ry会自动被设置为与rx相等的值。
- 如果只对ry进行了赋值,那么rx会自动被设置为与ry相等的值。
- 如果rx的值大于自身宽度的一半,那么它会被设置为自身宽度一半。
- 如果ry的值大于自身高度的一半,那么它会被设置为自身高度一半。
DEMO:
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<rect x="50" y="50" width="200" height="100" fill="#cd5c5c"></rect>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<rect x="50" y="50" rx="15" ry="15" width="200" height="100" fill="#cd5c5c"></rect>
</svg>

circle 元素
<circle>元素定义了一个圆形。
属性定义:
- cx =
<坐标点>,圆心在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。 - cy =
<坐标点>,圆心在当前用户坐标系中的y轴坐标,默认值为0。是否可动画:是。 - r =
<长度>,圆的半径。是否可动画:是。
DEMO:
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<circle cx="150" cy="100" r="70" fill="#cd5c5c"></circle>
</svg>

ellipse 元素
<ellipse>元素定义了一个椭圆。
属性定义:
- cx =
<坐标点>,圆心在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。 - cy =
<坐标点>,圆心在当前用户坐标系中的y轴坐标,默认值为0。是否可动画:是。 - rx =
<长度>,圆的x轴半径。是否可动画:是。 - ry =
<长度>,圆的y轴半径。是否可动画:是。
DEMO:
line 元素
<line>元素定义了一个处于两点之间的直线。
属性定义:
- x1 =
<坐标点>,起点在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。 - y1 =
<坐标点>,起点在当前用户坐标系中的y轴坐标,默认值为0。是否可动画:是。 - x2 =
<坐标点>,终点在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。 - y2 =
<坐标点>,终点在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。
因为line元素在几何关系上是一个一维的图形,所以它没有内部的这个概念,也无法在该元素上使用fill属性。
DEMO:
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<line x1="50" y1="50" x2="250" y2="150" stroke-width="5" stroke="#cd5c5c" />
</svg>

polyline 元素
<polyline>元素定义了一个由多条相连的直线段而成的非闭合图形。
属性定义:
- points =
<多组的坐标点>,由points属性中的坐标点相连而成的图形。
DEMO:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<polyline fill="none" stroke="#cd5c5c" stroke-width="5" points="50,50 260,50 260,150 50,150" />
</svg>

polygon 元素
<polygon>元素定义了一个由多条相连的直线段而成的闭合图形。
属性定义:
- points =
<多组的坐标点>,与<polyline>元素相同,也是由points属性中的坐标点相连而成的图形,但起始点也会相连。
DEMO:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200" viewBox="0 0 300 200" style="border:1px dashed #aaa;">
<polygon fill="none" stroke="#cd5c5c" stroke-width="5" points="50,50 260,50 260,150 50,150" />
</svg>

SVG 基础图形的更多相关文章
- D3.js学习笔记(六)——SVG基础图形和D3.js
目标 在这一章,我们将会重温SVG图形,学习如何使用D3.js来创建这些图形. 这里会包括前面例子中的SVG基础图形以及如何使用D3.js设置图形的属性. 使用D3.js画一个SVG 的 圆 circ ...
- SVG基础图形与参数
SVG是什么 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义WEB上使用的矢量图 SVG 使用 XML 格式定义图形 SVG 图像在缩放时其图形质量不 ...
- SVG基础图形和D3.js
使用D3.js画一个SVG 的 圆 circle 可以使用如下代码创建: <svg width="50" height="50"> <circ ...
- SVG 学习<一>基础图形及线段
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- SVG.js 基础图形绘制整理(二)
一.折线 var draw = SVG('svg1').size(300, 300); //画折线 //使用字符串点 // var polyline=draw.polyline('0,0 100,50 ...
- SVG基础绘图实例
SVG可缩放矢量图(Scalable Vector Graphics),是使用 XML 来描述二维图形和绘图程序的语言,图像在放大或改变尺寸的情况下其图形质量不会有所损失,是万维网联盟的标准. 下面整 ...
- HTML5 可缩放矢量图形(1)—SVG基础
参考文档1 SVG基础 SVG介绍 概念:SVG 是使用 XML 来描述二维图形和绘图程序的语言.(理解就是一个在网页上使用笔画图的过程) 什么是SVG SVG 指可伸缩矢量图形 (Scalable ...
- 多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址
多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电 ...
- 【D3.V3.js系列教程】--(十五)SVG基本图形绘制
[D3.V3.js系列教程]--(十五)SVG基本图形绘制 1.path <!DOCTYPE html> <html> <head> <meta charse ...
随机推荐
- python3 线程_threading模块
'''并发:同一个时间段内运行多个程序的能力 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成 程序:食谱数据集:鸡蛋.牛奶.糖等进程控制块:记下食谱做到 ...
- 图像转换为二进制文件存入DSP6748
本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 这篇博客主 ...
- IPsec传输模式下ESP报文的装包和拆包过程
原创文章,拒绝转载 装包过程 总体流程图 过程描述 在原IP报文中找到TCP报文部分,在其后添加相应的ESP trailer信息. ESP trailer 包含三部分:Padding,Pad leng ...
- PHP定时执行
参考一 test.bat D:\myamp\php\php.exe -q D:\myamp\Apache\htdocs\dingshi.php dingshi.php <?php ignore_ ...
- jq TAB切换
<a href="http://www.w3.org/1999/xhtml">" target="_blank">http://ww ...
- 【SQL】数据库更新
1.插入 INSERT INTO R(A1,A2,...An) VALUES(v1, v2, ...,vn) 如果插入了所有属性,并且按照定义的顺序给出,可以省略(A1,A2,...An) 可以只插入 ...
- hdu 1423(LCS+LIS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1423 好坑啊..还有公共串为0时的特殊判断,还有格式错误..看Discuss看知道除了最后一组测试数据 ...
- MYSQL的内外连接
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...
- 将datatable导出为excel的三种方式(转)
一.使用Microsoft.Office.Interop.Excel.DLL 需要安装Office 代码如下: 2 public static bool ExportExcel(Sy ...
- asp.net中利用JSON进行增删改查中运用到的方法
//asp.net中 利用JSON进行操作, //增加: //当点击“增加链接的时候”,弹出增加信息窗口,然后,在窗体中输入完整信息,点击提交按钮. //这里我们需要考虑这些:我会进行异步提交,使用j ...