D3.js关于SVG 最后更新时间:2021年03月18日 SVG是一种基于XML的矢量图格式。它提供了绘制不同形状的选项,如直线,矩形,圆形,椭圆等。 ## SVG功能 SVG有如下特征: - SVG是基于XML的矢量图片格式,是基于文本的。 - SVG在格式上和HTML相似。 - SVG可以表示为DOM。 - 可以将SVG属性指定为属性。 - SVG应该具有相对于(0,0)的绝对位置。 - SVG可以包含在HTML中。 ## SVG形状 SVG中预定义了一些图形供开发者直接使用: - 矩形 `` - 圆形 `` - 椭圆`` - 线 `` - 折线 `` - 多边形 `` - 路径 `` ### (1)矩形元素: rect用于定义矩形,以及矩形的变种。 rect的属性: - width属性可定义矩形的宽度。 - height属性可定义矩形的高度度。 - x属性可定义矩形距离SVG左上角(即(0,0))位置的横向距离。 - y属性可定义矩形距离SVG左上角(即(0,0))位置的纵向距离。 - rx属性可定义矩形横向产生圆角。 - ry属性可定义矩形纵向产生圆角。 css属性: - fill属性可定义矩形内部的颜色。 - stroke属性可定义矩形边框的颜色。 - stroke-width属性可定义矩形边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (2)圆形元素 circle用于定义圆形。 circle的属性: - cx定义圆点的横坐标位置。 - cy定义圆点的纵坐标位置。 - r定义半径长度。 css属性: - fill属性可定义圆形内部的颜色。 - stroke属性可定义圆形边框的颜色。 - stroke-width属性可定义圆形边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (3)椭圆元素 ellipse用于定义椭圆。 ellipse的属性: - cx属性定义圆点的横坐标。 - cy属性定义圆点的纵坐标。 - rx属性定义水平半径。 - ry属性定义垂直半径。 css属性: - fill属性可定义椭圆内部的颜色。 - stroke属性可定义椭圆边框的颜色。 - stroke-width属性可定义椭圆边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (4)线条元素 line用于定义线条。 line的属性: - x1属性在 x 轴定义线条的开始。 - y1属性在 y 轴定义线条的开始。 - x2属性在 x 轴定义线条的结束。 - y2属性在 y 轴定义线条的结束。 css属性: - fill属性可定义线条内部的颜色。 - stroke属性可定义线条边框的颜色。 - stroke-width属性可定义线条边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (5)多边形元素 polygon标签用来创建含有不少于三个边的图形。 polygon的属性: - points用于定义每个角的横坐标和纵坐标。如:`points="0,0 90,90 10,90"` css属性: - fill属性可定义多边形内部的颜色。 - stroke属性可定义多边形边框的颜色。 - stroke-width属性可定义多边形边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (6)折线元素 polyline标签用来创建仅包含直线的形状。(即折线) polyline的属性: - points用来定义折线的起始(终止)位置每个线段连接处的位置。 css属性: - fill属性可定义折线内部的颜色。 - stroke属性可定义折线边框的颜色。 - stroke-width属性可定义折线边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ### (7)路径元素 path标签用来定义路径。 path标签的本质是利用路径来绘制不同的图形,从而达到高自定义化。 path的属性: - d属性用来定义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 路径关闭 css属性: - fill属性可定义路径内部的颜色。 - stroke属性可定义路径边框的颜色。 - stroke-width属性可定义路径边框的宽度。 - fill-opacity属性可定义填充颜色透明度(合法的范围是:0 - 1) - stroke-opacity属性可定义笔触颜色的透明度(合法的范围是:0 - 1) - opacity属性可定义整个元素的透明值(合法的范围是:0 - 1) 示例: ```html ``` 代码实际效果如下: ## D3.js使用SVG 步骤如下: 1.创建一个容器来保存SVG图像 2.使用select()方法选择SVG容器,并使用append()方法注入SVG元素。 使用attr()和style()方法添加属性和样式。 3.使用同样的方法在svg容器中添加需要的图形元素以及属性和样式。 示例: ```html ```
Comments | NOTHING