SVG基本图形

SVG 是使用 XML 来描述二维图形和绘图程序的语言

  • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
  • SVG 用来定义用于网络的基于矢量的图形
  • SVG 使用 XML 格式定义图形
  • SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
  • SVG 是万维网联盟的标准
  • SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

SVG坐标系统:

一、圆

<svg width="50" height="50">
    <circle cx="25" cy="25" r="22" fill="blue" stroke="gray" stroke-width="2"></circle>
</svg>

cx和cy属性定义圆点的x和y坐标,如果省略cx和cy,圆的中心会被设置为(0,0);r定义半径;

fill:内部填充颜色;stroke:轮廓颜色;stroke-width:轮廓宽;opacity:透明度, 0.0完全透明,1.0不透明

二、矩形

<rect x="0" y="0" width="500" height="50"/>

三、椭圆

<ellipse cx="250" cy="25" rx="100" ry="25"/>

四、线条line

<line x1="0" y1="0" x2="500" y2="50" stroke="black"/>

五、折线polyline

用来创建只包含直线的形状

<svg>
  <polyline points="0,0 0,20 20,20 20,40 40,40 40,60" style="fill:white;stroke:red;stroke-width:2"></polyline>
</svg>

六、路径path

下面的命令可用于路径数据:(命令详情可查看https://segmentfault.com/a/1190000005053782)

  • M = moveto   两个参数 画笔起始位置
  • L = lineto    两个参数,画直线(x ,y)坐标 ,在当前位置和新位置(L前面画笔所在的点)之间画一条线段
  • H = horizontal lineto         一个参数,绘制水平直线
  • V = vertical lineto     一个参数,绘制垂直线
  • C = curveto   三次贝塞尔曲线 命令参数:C x1 y1, x2 y2, x y  起点控制点,终点控制点,终点
  • S = smooth curveto  简写的贝塞尔曲线命令 命令参数:S x2 y2, x y
  • Q = quadratic Belzier curve   二次贝塞尔曲线 命令参数:Q x1 y1, x y  控制点,终点坐标
  • T = smooth quadratic Belzier curveto  Q命令的简写 T x y
  • A = elliptical Arc
  • Z = closepath   闭合路径,从当前点画一条直线到路径的起点。不区分大小写

注释:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。

<svg>
    <path d="M250 150 L150 350 L350 350 Z" stroke="blue" stroke-width="2"/>
</svg>

五、text

<text x="250" y="25" fill="gray" font-family="serif" font-size="25">Easy-peasy</text>

Layering and Drawing Order

<svg width="500" height="50">
  <rect x="0" y="0" width="30" height="30" fill="purple"/>
  <rect x="20" y="5" width="30" height="30" fill="blue"/>
  <rect x="40" y="10" width="30" height="30" fill="green"/>
  <rect x="60" y="15" width="30" height="30" fill="yellow"/>
  <rect x="80" y="20" width="30" height="30" fill="red"/>
</svg>

Transparency

<circle cx="25" cy="25" r="20" fill="rgba(128, 0, 128, 1.0)"/>
<circle cx="50" cy="25" r="20" fill="rgba(0, 0, 255, 0.75)"/>
<circle cx="75" cy="25" r="20" fill="rgba(0, 255, 0, 0.5)"/>
<circle cx="100" cy="25" r="20" fill="rgba(255, 255, 0, 0.25)"/>
<circle cx="125" cy="25" r="20" fill="rgba(255, 0, 0, 0.1)"/>

<circle cx="25" cy="25" r="20" fill="rgba(128, 0, 128, 0.75)"
        stroke="rgba(0, 255, 0, 0.25)" stroke-width="10"/>
<circle cx="75" cy="25" r="20" fill="rgba(0, 255, 0, 0.75)"
        stroke="rgba(0, 0, 255, 0.25)" stroke-width="10"/>
<circle cx="125" cy="25" r="20" fill="rgba(255, 255, 0, 0.75)"
        stroke="rgba(255, 0, 0, 0.25)" stroke-width="10"/>

<svg width="500" height="50">
<circle cx="25" cy="25" r="20" fill="purple" stroke="green" stroke-width="10"/>
<circle cx="65" cy="25" r="20" fill="green" stroke="blue" stroke-width="10"/>
<circle cx="105" cy="25" r="20" fill="yellow" stroke="red" stroke-width="10"/>
</svg>

<circle cx="25" cy="25" r="20" fill="purple" stroke="green" stroke-width="10"
        opacity="0.9"/>
<circle cx="65" cy="25" r="20" fill="green" stroke="blue" stroke-width="10"
        opacity="0.5"/>
<circle cx="105" cy="25" r="20" fill="yellow" stroke="red" stroke-width="10"
        opacity="0.1"/>  //透明度应用在整个circle元素上

<circle cx="25" cy="25" r="20" fill="rgba(128, 0, 128, 0.75)"
        stroke="rgba(0, 255, 0, 0.25)" stroke-width="10"/>
<circle cx="65" cy="25" r="20" fill="rgba(128, 0, 128, 0.75)"
        stroke="rgba(0, 255, 0, 0.25)" stroke-width="10" opacity="0.5"/>
<circle cx="105" cy="25" r="20" fill="rgba(128, 0, 128, 0.75)"
        stroke="rgba(0, 255, 0, 0.25)" stroke-width="10" opacity="0.2"/>
时间: 2024-08-28 16:48:09

SVG基本图形的相关文章

SVG 基础图形

SVG 基础图形 SVG包含了以下的基础图形元素: 矩形(包括可选的圆角),使用<rect>元素创建 圆形,使用<circle>元素创建 椭圆形,使用<ellipse>元素创建 直线,使用<line>元素创建 折线,使用<polyline>元素创建 多边形,使用<polygon>元素创建 理论上,这些基础图形元素都能用<path>元素来构建的相同的图形.并且所有可用于<path>元素的属性都可以应用在这些基础图

理解SVG的图形填充规则

SVG的图形填充规则通过fill-rule属性来指定. 有效值:   nonzero | evenodd | inherit 默认值:   nonzero fill-rule属性用于指定使用哪一种算法去判断画布上的某区域是否属于该图形“内部” (内部区域将被填充).对一个简单的无交叉的路径,哪块区域是“内部” 是很直观清除的.但是,对一个复杂的路径,比如自相交或者一个子路径包围另一个子路径,“内部”的理解就不那么明确了. nonzero 字面意思是“非零”.按该规则,要判断一个点是否在图形内,从

多比(SVG/VML)图形控件多比(SVG/VML)图形控件免费下载

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数千家客户采

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

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数

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

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形拓扑图控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数千家

SVG基础图形与参数

SVG是什么 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义WEB上使用的矢量图 SVG 使用 XML 格式定义图形 SVG 图像在缩放时其图形质量不会有所损失 SVG 是W3C推荐的 SVG 与诸如 DOM和 XSL 之类的W3C标准是一个整体 SVG的优势 SVG 可被非常多的工具读取和修改(比如记事本) SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强. SVG 是可缩放的 SVG 图像可在任何的分辨率下被高质量地打印

SVG 旋转图形实例

本实例展示如何在SVG中画出一个正方形并使之旋转.运行结果如下图所示: 在文本框中输入时间间隔,单位是毫秒.点击Start按钮,蓝色方块就会开始转动,每个时间间隔变化一度.变换的角度在下面的Angle处显示. 实现代码如下,技术要点已经详细注释. <!DOCTYPE html> <?xml version="1.0" ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg=&quo

SVG基础图形和D3.js

使用D3.js画一个SVG 的 圆 circle 可以使用如下代码创建: <svg width="50" height="50"> <circle cx="25" cy="25" r="25" fill="purple" /> </svg> D3.js来创建这些图形可以看做这一过程为两步: 创建SVG容器(SVG坐标空间) 画圆形 //创建一个SVG容

SVG入门

一. 什么是SVG?SVG(Scalable Vector Graphics)可伸缩矢量图形,它是用XML格式来定义用于网络的基于矢量的图形,而它的特点就是 图像在放大或改变尺寸的情况下其图形质量不会有所损失,同时他和DOM一样都是W3C的一个标准.这里解释下位图和矢量图:位图,也就是我们经常能看到的图片,他是一个平面上密集排布的店的集合,也就是说它是由一个个点构成的.而如果对他进行放大那么相对应的点就会进行放大,这样就会让图片显得十分不清晰粗糙.矢量图,也称为面向对象的图像或绘图图像,在数学上