svg中可以绘制的基本图形有线段,矩形,多边形,圆,椭圆,分别来看一下这些基本图形:

线段

使用<line>元素创建一条线段,格式如下:

<line x1=" start-x " y1=" start-y " x2=" end-x " y2=" end-y " stroke="black">

其中start-x和start-y为线段起点的x,y坐标,end-x和end-y为线段结束点的x,y坐标。

示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid #000000">
<line x1="10" y1="10" x2="200" y2="200" stroke="black">
</line>
</svg>
</body>
</html>

以上代码在浏览器中显示如下:

以上代码中<line>元素除了自身的基本属性之外还有个stroke属性,此属性用来指定基本图形的轮廓颜色,若不指定,默认为none,即在浏览器中无法看到所绘制的图形。除此之外,类似的属性还有stroke-width,stroke-opacity,stroke-dasharray,fill等,此类属性以后本文结尾时会详解,此处只是用来将图形显示出来

矩形

使用<rect>元素绘制一个矩形,格式如下:

<rect x="left-top-point-x" y="left-top-point-y" width="w" height="h"></rect>

其中x,y属性为矩形左上角顶点的x,y坐标,width和height分别指定矩形的宽高

示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<rect x="30" y="50" width="100" height="60" stroke="black" fill="none">
</rect>
</svg>
</body>
</html>

在浏览器中呈现如下:

圆角矩形

圆角矩形也使用<rect>元素创建,只不过额外指定了两个属性,格式如下:

<rect x="left-top-point-x" y="left-top-point-y" width="w" height="h" rx="rx" ry="ry">
</rect>

属性rx和ry分别指定了x方向和y方向的圆角半径,示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<rect x="30" y="50" width="200" height="120" rx="10" ry="60" stroke="black" fill="none">
</rect>
</svg>
</body>
</html>

在浏览器中呈现如下:

将以上代码中的svg部分代码改为下面的代码:

<svg width="300" height="300" style="border:1px solid black">
<rect x="30" y="50" width="200" height="120" rx="10" ry="10" stroke="black" fill="none">
</rect>
</svg>

在浏览器中呈现如下:

在svg中使用<circle>元素创建一个圆,格式如下:

<circle cx="cx" cy="cy" r="radius" ></circle>

cx和cy分别指定了圆心坐标的x和y,r元素指定了圆的半径。示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<circle cx="100" cy="100" r="60" stroke="black" fill="none">
</circle>
</svg>
</body>
</html>

在浏览器中呈现如下:

椭圆

在svg中创建椭圆使用<ellipse>元素,只不过椭圆有两个半径,水平方向上的和垂直方向上的,格式如下:

<ellipse cx="circle-x" cy="circle-y" rx=" x-radius " ry="y-radius"></ellipse>

其中cx和cy为椭圆的圆心,rx和ry为水平方向和垂直方向上的半径。示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<ellipse cx="100" cy="100" rx="60" ry="90" stroke="black" fill="none">
</ellipse>
</svg>
</body>
</html>

在浏览器中呈现如下:

多边形

svg中最有魅力的就是多边形和路径了,CSS3再牛逼也没有办法像svg一样如此简单的创建一个任意的多边形,在svg中通过<polygon>元素创建一个多边形,格式如下:

<polygon points="x1,y1 x2,y2 x3,y3 x4,y4 …"></polygon>

通过为points属性指定多个坐标点来创建一个多边形,坐标点之间以空格或者逗号隔开,指定坐标时不需要指定返回起始坐标,图形会自动闭合。

示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<polygon points="10,150 30,40 170,50 10,20" stroke="black" fill="none">
</polygon>
</svg>
</body>
</html>

在浏览器中下呈现如下:

折线

绘制折线的时候可以通过一系列的<line>元素来创建,但是这样做会加大阅读的难度,不利于代码的维护,所以可以通过另一种方法来创建折线,那就是<polyline>元素,格式如下:

<polyline points="x1,y1 x2,y2 x3,y3 x4,y4 …"></polyline >

其中的point元素指定的也是坐标点,点之间以空格或者逗号隔开,示例如下:

<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<svg width="300" height="300" style="border:1px solid black">
<polyline points="23.5,45 58.2,87.63 34,23.4 200,210" stroke="black" fill="none"></polyline>
</svg>
</body>
</html>

浏览器中打开如下:

画笔属性

stroke:画笔的颜色,默认为none

stroke-width:画笔的宽度,默认为1

stroke-opacity:画笔颜色的透明度,取值为0到1之间的数值,0为完全透明,1为完全不透明,默认为1

stroke-dasharray:指定一个数值序列来表示虚线的长度和虚线中间空隙的长度

stroke-linecap:线头尾的形状,值为butt,round或者square

stroke-linejoin:图形的棱角或者一系列连线的形状,取值为miter(尖的,默认值),round或者bevel(平的)

stroke-miterlimit:相交处显示宽度与线宽的最大比例,默认值为4

fill:指定图形的填充颜色,默认值为black

fill-opacity:填充的透明度,取值范围为0~1之间的数值,0为完全透明,1为完全不透明,默认值为1

fill-rule:填充的规则,取值为nonzero(默认值)或者evenodd

3. svg学习笔记-基本形状和画笔属性的更多相关文章

  1. 7. svg学习笔记-图案和渐变

    之前,我们仅仅使用纯色来为图形填充颜色和绘制轮廓,除此之外,我们还可以使用图案和渐变来填充图形或者是绘制轮廓. 图案 图案的效果类似于,在网页中给一个元素指定背景图像,当背景图像的尺寸小于元素的尺寸的 ...

  2. 8. svg学习笔记-文本

    毫无疑问,文本也是svg中组成的重要部分,在svg中,用<text>元素来创建文本,文本的使用格式如下: <text x="20" y="30" ...

  3. 4. svg学习笔记-文档结构元素和样式的使用

    svg除了绘图元素之外还有一部分是专门用于文档结构的,这类元素有<g>,<use>,<defs>,<symbol>等 <g>元素 如果我们仅 ...

  4. 2. svg学习笔记-svg中的坐标系统和viewbox

    我是通过<SVG精髓>这本书学习的svg,说实话,这本书写的不好,或者说翻译的不好,我没有看过这本书的原版,不知道原文写的怎么样,但是翻译出来的有些句子真的很拗口.以前老师给我们API文档 ...

  5. svg的基本图形与属性【小尾巴的svg学习笔记1】

    因为项目有可能用到, 所以学习了一下,做此笔记,图截自慕课网,侵删. 一.基本图形 1.矩形 x,y定义矩形的左上角坐标: width,height定义矩形的长度和宽度: rx,ry定义矩形的圆角半径 ...

  6. svg学习笔记(一)

    SVG——可扩展适量图形,基于XML PC端:IE9+   wap端:表现良好,适合使用 基础图形: line(线段)  <line x1="25" y1="150 ...

  7. svg学习笔记(二)

    SMIL animation演示代码集锦 <svg width="1400" height="1600" xmlns="http://www.w ...

  8. svg学习笔记

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. 9. svg学习笔记-裁剪和蒙版

    裁剪 在svg中进行剪切,对整个svg元素而言,可以使用<svg>元素的viewbox属性,对于单个元素则可以使用<clipPath>元素.在单个图形元素上使用裁剪,可以在&l ...

随机推荐

  1. 监控 | open-falcon | 安装

    监控 | open-falcon | 安装 1. 简介 主要看中了它的水平扩展,画图比zabbix要友好,告警支持简单压缩. 绿色:基础组件: 蓝色:作图链路 红色:报警链路 橙色:域名 架构 1.1 ...

  2. OJ:奇怪的类复制

    描述 程序填空,使其输出9 22 5 #include <iostream> using namespace std; class Sample { public: int v; // 在 ...

  3. Haskell复习笔记(一)

    Haskell笔记这是第三次总结,前两次都因为各种原因丢失了,对于Haskell我算不上什么大神,只不过在大学时为了学习算法时选择了Haskell. 当时的入门书籍选择的是<Learn You ...

  4. 安装Ubuntu的Mozilla Firefox的Adobe Flash Player时学习/lib、/usr/lib、/usr/local/lib的区别

    想对比一下Ubuntu和windows下视频效果体验的区别.安装了Ubuntu新版14.04.在之前的学习工程中,从来没想过使用虚拟机里的火狐浏览器看视频浏览网页,所以还真没有安装Flash的Linu ...

  5. SQL Server2008附加数据库出现错误

    在用SQL Server 2008附加数据库时,出现了如下错误: 解决方法如下: 一. 检查对数据库文件及其所在文件夹是否有操作权限,右键文件属性,将权限修改为完全控制: 二. 权限改了之后,发现还是 ...

  6. Startup在不同环境中的处理

    ASP.NET Core引进了在多种环境中对控制应用程序行为的进一步支持,例如开发环境(Development Environment).预发布环境(Staging Environment),和生产环 ...

  7. ASP.NET资源大全-知识分享

    API 框架 NancyFx:轻量.用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台.官网 ASP.NET WebAPI:快捷创建 HTTP 服务 ...

  8. [android] 服务的生命周期(混合方式)

    绑定服务:可以调用服务里面的方法, 如果调用者activity销毁了,服务也会跟着销毁 单独解除绑定的时候,服务也会被销毁 开启服务:不可以调用服务里面的方法 如果调用者activity退出了,服务还 ...

  9. DNS到底是干什么用的

    DNS,DomainNameSystem或者DomainNameService(域名系统或者余名服务).域名系统为Internet上的主机分配域名地址和IP地址.用户使用域名地址,该系统就会自动把域名 ...

  10. Redirection

    Typically, the syntax of these characters is as follows, using < to redirect input, and > to r ...