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 ...
随机推荐
- ssh保持连接
转载自: http://www.neatstudio.com/show-625-1.shtml http://www.linuxidc.com/Linux/2010-05/26031.htm (这一篇 ...
- docker push 镜像到本地仓库
root@ubuntu:# uname -a Linux ubuntu --generic #-Ubuntu SMP Mon Feb :: UTC x86_64 x86_64 x86_64 GNU/L ...
- 字符设备驱动ioctl实现用户层内核层通信
测试代码实现 memdev.h #ifndef _MEMDEV_H_ #define _MEMDEV_H_ #include<linux/ioctl.h> #ifndef MEMDEV_M ...
- JVM指令的使用深入详解
原文地址:https://www.jb51.net/article/155293.htm 一.未归类系列A 此系列暂未归类. 指令码 助记符 ...
- CentOS erlang安装
1. http://www.erlang.org/下载erlang,解压缩,进入目录,检查环境 alex$ cd otp_src_18. alex$ ./configure ************* ...
- python中进程池的应用
#原创,转载请联系 假设我们写的一个程序需要运行100个子进程的时候,那么写程序时,不可能循环创建销毁100个进程吧?进程的创建与销毁是很耗系统的资源的. 进程池的作用就体现出来了. 进程池可以控制进 ...
- PYTHON代理IP
import urllib.request url = 'http://www.whatismyip.com.tw/' proxy_support = urllib.request.ProxyHand ...
- ubuntu 16.04安装redis(源码安装)zz
本文转载自: http://www.linuxdiyf.com/linux/22527.html Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Val ...
- hdu 1534(差分约束)
Schedule Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 开放API端口SIGN算法详细设计
开放API端口SIGN算法详细设计 前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要 ...