SVG 基础图形

SVG包含了以下的基础图形元素:

  • 矩形(包括可选的圆角),使用<rect>元素创建
  • 圆形,使用<circle>元素创建
  • 椭圆形,使用<ellipse>元素创建
  • 直线,使用<line>元素创建
  • 折线,使用<polyline>元素创建
  • 多边形,使用<polygon>元素创建

理论上,这些基础图形元素都能用<path>元素来构建的相同的图形。并且所有可用于<path>元素的属性都可以应用在这些基础图形上。

rect 元素

<rect>元素定义了一个与当前用户坐标系轴对齐的矩形。而圆角的矩形可以通过设置元素的 rxry属性来实现。

属性定义:

  • x = <坐标点>,矩形左上角在当前用户坐标系中的x轴坐标,默认值为0。是否可动画:是。
  • y = <坐标点>,矩形左上角在当前用户坐标系中的y轴坐标,默认值为0。是否可动画:是。
  • width = <长度>,矩形宽度,默认值为0。是否可动画:是。
  • height = <长度>,矩形高度,默认值为0。是否可动画:是。
  • rx = <长度>,矩形X轴的圆角半径,默认值为0。是否可动画:是。
  • ry = <长度>,矩形y轴的圆角半径,默认值为0。是否可动画:是。

圆角规则:

  1. rx和ry必须是一个长度值。
  2. 如果没有对rx和ry给出定义,那么它们都会被设为0。 (这样他们会是一个尖角的矩形)
  3. 如果只对rx进行了赋值,那么ry会自动被设置为与rx相等的值。
  4. 如果只对ry进行了赋值,那么rx会自动被设置为与ry相等的值。
  5. 如果rx的值大于自身宽度的一半,那么它会被设置为自身宽度一半。
  6. 如果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 基础图形的更多相关文章

  1. D3.js学习笔记(六)——SVG基础图形和D3.js

    目标 在这一章,我们将会重温SVG图形,学习如何使用D3.js来创建这些图形. 这里会包括前面例子中的SVG基础图形以及如何使用D3.js设置图形的属性. 使用D3.js画一个SVG 的 圆 circ ...

  2. SVG基础图形与参数

    SVG是什么 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义WEB上使用的矢量图 SVG 使用 XML 格式定义图形 SVG 图像在缩放时其图形质量不 ...

  3. SVG基础图形和D3.js

    使用D3.js画一个SVG 的 圆 circle 可以使用如下代码创建: <svg width="50" height="50"> <circ ...

  4. SVG 学习<一>基础图形及线段

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. SVG.js 基础图形绘制整理(二)

    一.折线 var draw = SVG('svg1').size(300, 300); //画折线 //使用字符串点 // var polyline=draw.polyline('0,0 100,50 ...

  6. SVG基础绘图实例

    SVG可缩放矢量图(Scalable Vector Graphics),是使用 XML 来描述二维图形和绘图程序的语言,图像在放大或改变尺寸的情况下其图形质量不会有所损失,是万维网联盟的标准. 下面整 ...

  7. HTML5 可缩放矢量图形(1)—SVG基础

    参考文档1 SVG基础 SVG介绍 概念:SVG 是使用 XML 来描述二维图形和绘图程序的语言.(理解就是一个在网页上使用笔画图的过程) 什么是SVG SVG 指可伸缩矢量图形 (Scalable ...

  8. 多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址

    多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电 ...

  9. 【D3.V3.js系列教程】--(十五)SVG基本图形绘制

    [D3.V3.js系列教程]--(十五)SVG基本图形绘制 1.path <!DOCTYPE html> <html> <head> <meta charse ...

随机推荐

  1. linux 链表实例应用程序【转】

    转自:http://blog.csdn.net/echo_qiang/article/details/6233057 /**************************************** ...

  2. appium===元素定位

    一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...

  3. HTML5初学---坦克大战基础

    让小球动起来,根据键盘的W(上),D(右),S(下),A(左):键的点击移动小球 <!DOCTYPE html> <html> <head> <meta ch ...

  4. docker从零开始网络(二)桥接网络

    使用桥接网络 在网络方面,桥接网络是链路层设备,它在网络段之间转发流量.桥接网络可以是硬件设备或在主机内核中运行的软件设备. 就Docker而言,桥接网络使用软件桥接器,该软件桥接器允许连接到同一桥接 ...

  5. python的内存管理机制(zz)

    本文转载自:http://www.cnblogs.com/CBDoctor/p/3781078.html 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计 ...

  6. tomcat虚拟主机

    直接看配置文件吧,有点基础的都懂 <Host name="localhost" appBase="webapps" unpackWARs="fa ...

  7. 关于Promise 简单使用理解

    在学一个新的知识的时候,我的总结是首先要具备相关的基础知识,其次就是可以静下心来能看进去去理解,看一两遍不懂,就看四五遍,甚至六七遍,每一遍都认真努力理解,总会学会的. Promise是一个构造函数, ...

  8. [orangehrm] 安装问题集合

    Web server allows .htaccess files # 这一项检查不通过 解决: In conf/extra/httpd-vhosts.conf, add the line Allow ...

  9. shell脚本学习(二)

    shell传递参数 shell脚本在执行是可以传递参数,脚本内获取参数的格式为:$n,n为一个数字,1为第一个参数,2为第二个参数,以此类推 其中,$0代表了要执行的文件名 实例: 代码如下: #!/ ...

  10. 模板—算法—整体二分(区间k小值)

    模板—算法—整体二分(区间k小值) Code: #include <cstdio> #include <algorithm> using namespace std; #def ...