首页 > 其他分享 >初学svg

初学svg

时间:2024-05-28 16:59:19浏览次数:21  
标签:svg 元素 使用 初学 SVG 图形 绘制 属性

1.什么是SVG?

SVG,可缩放矢量图形(Scalable Vector Graphics),是一种用于描述二维图形的 XML 标记语言。与位图图像不同,SVG 图像以文本形式存储,并且可以缩放到任意大小而不会失真,因为它们基于数学描述而不是像素。

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

2.使用SVG的优势在哪?

  • 可缩放性:SVG 图像可以无损地缩放到任意大小而不失真。这是因为 SVG 是基于矢量描述的,而不是像素图像,因此在不同分辨率和尺寸的屏幕上都能保持清晰。

  • 文本性质:SVG 文件是基于XML的文本文件,易于编辑和维护。你可以直接编辑 SVG 文件来调整图形,也可以使用文本编辑器或代码编辑器来创建和修改 SVG 图像。

  • 交互性:SVG 允许添加交互式元素,如链接、动画和事件处理器。这使得 SVG 图像可以与用户进行交互,从而创建更丰富的用户体验。

  • 动画支持:SVG 支持使用 CSS 和 JavaScript 创建动画,使图形更生动。你可以通过 CSS 动画或 JavaScript 脚本来实现 SVG 图形的动态效果,如过渡、旋转、缩放等。

  • 可嵌入性:SVG 图像可以直接嵌入到 HTML 文档中,也可以作为外部文件链接到 HTML 文档中。这使得 SVG 图像可以与其他Web技术无缝集成,如 CSS、JavaScript 等。

3.SVG的基本语法?

      <svg  width="100px" height="100px">           <text x="0" y="15" fill="red" transform="rotate(30 20,40)">I love SVG</text>       </svg>
    • SVG文档以 <svg> 标签开始,以 </svg> 标签结束。

    • SVG元素使用标签来描述不同的图形,例如 <circle> 表示圆形,<rect> 表示矩形等。

    • SVG元素可以包含属性,用于指定图形的各种特性,如位置、大小、颜色等。

4.SVG一些基本的图形绘制

SVG 提供了一系列的图形元素来绘制各种形状的图形,如矩形、圆形、直线、多边形等。

    • <rect>:绘制矩形:使用 <rect> 元素绘制矩形,可以指定矩形的位置、大小、圆角等属性。<rect x="50" y="50" width="100" height="50" rx="10" ry="10" fill="blue" />

    • <circle>:绘制圆形:使用 <circle> 元素绘制圆形,可以指定圆心坐标和半径。<circle cx="100" cy="100" r="50" fill="red" />

    • <ellipse>:绘制椭圆:使用 <ellipse> 元素绘制椭圆,可以指定椭圆的中心坐标和长短轴的半径。<ellipse cx="100" cy="100" rx="80" ry="50" fill="green" />

    • <line>:绘制直线:使用 <line> 元素绘制直线,需要指定起点和终点坐标。<line x1="50" y1="50" x2="150" y2="150" stroke="black" stroke-width="2" />

    • <polyline>:绘制折线:使用 <polyline> 元素绘制折线,需要指定多个点的坐标。<polyline points="100,50 150,150 50,150" fill="none" stroke="blue" stroke-width="2" />

    • <polygon>:绘制多边形:使用 <polygon> 元素绘制多边形,需要指定多个顶点的坐标。<polygon points="100,50 150,150 50,150" fill="orange" />

    • <path>:绘制路径:使用 <path> 元素绘制路径,可以通过指定一系列的路径命令来绘制各种形状。<path d="M10 10 L90 10 L90 90 Z" fill="none" stroke="black" stroke-width="2" />

5.其它的一些属性介绍:https://www.runoob.com/svg/svg-example.html

渐变和填充:

    • 使用 <linearGradient> 或 <radialGradient> 定义渐变。

    • 使用 fill 和 stroke 属性指定填充和描边样式。

文本和字体:

    • 使用 <text> 元素插入文本。

    • 使用 font-familyfont-size 等属性控制文本样式。

动画和交互:

    • 使用CSS或JavaScript创建动画效果。

    • 添加事件处理器实现交互功能,如鼠标点击、悬停等。

SVG 元素属性:

SVG元素可以具有各种属性,用于指定图形的位置、大小、颜色等特性。

      • cx 和 cy 属性定义了圆心的x和y坐标。

      • r 属性定义了圆的半径。

      • fill 属性定义了填充颜色。

      • stroke 属性定义了描边颜色。

      • stroke-width 属性定义了描边宽度。

 

嵌套和分组:

SVG 元素可以嵌套和分组,以便更好地组织和管理图形元素。

      • <g> 元素用于创建一个分组。

      • id 属性用于为分组指定一个唯一的标识符。

 

标签:svg,元素,使用,初学,SVG,图形,绘制,属性
From: https://www.cnblogs.com/wyl-1113/p/18218331

相关文章

  • MySQL常见问题解答:初学者常遇到的疑惑与解决方案
    MySQL是一种常用的关系型数据库管理系统,用于存储和管理大量的数据。对于初学者来说,可能会遇到一些问题和困惑。下面是一些常见问题的解答和解决方案:1.安装和配置MySQL您可以按照以下步骤进行操作:1.1下载MySQL安装包:您可以从MySQL官方网站MySQL::下载MySQL社区服务......
  • SEO初学者指南之什么是SEO
    前言Hi,大家好,我是听风。欢迎来到SEO基础入门指南。在这个博客中主要教大家SEO的基础知识,以谷歌SEO为主,重点放在实操方面。虽然是基础入门教程,但我希望朋友们不要对“初学者”这个词有什么误解。其实大部分的知识点都可以从谷歌SEO官方指南中找到,我只是将其简化并融合我过去几年......
  • 十个对初学者特有用的 Linux 命令(非常详细)零基础入门到精通,收藏这一篇就够了
    21CTO导读:作为一名Linux管理员,或者即使是刚刚开始使用Linux的新手,充分了解解决网络问题时有用的命令也是至关重要的。我们将探讨用于诊断和解决常见网络问题的10个基本Linux命令。每个命令都将附有实际示例,以说明其用法与有效性。1.ping例如:pingwww.21cto.com......
  • 初学者都能掌握的操作符(中)
    (1)位操作符(&|^)&:(按二进制位“与”)也就是两个数的每一位二进制数按照“与”的算法,如下:inta=3,b=5;c=a&b;我们首先写出a和b的二进制数来具体分析:a:00000000000000000000000000000011b:00000000000000000000000000000101则c就是a和b的每一位二进制按照与......
  • 初学Echart
    创建一个html文件1.引入 点击链接----快速上手网址:快速上手-使用手册-ApacheECharts复制这一串【这个是引入echart路径】引入到这里2.使用我们在上一步---点击返回--往下翻---找到完整代码--复制黏贴复制粘贴后--总体长这样<!DOCTYPEhtml><htmllang="en"......
  • Golang初学:项目目录结构,project-layout 项目
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linux--- 序章golang项目的代码要怎么组织?怎么放比较简洁易读?看下面这个项目就晓得了。 project-layouthttps://github.com/golang-standards/project-layout注,有时访问失败。特写文记录。......
  • 已经阻止此发布者在你的计算机上运行软件/ 为了对电脑进行保护,已经阻止此应用 / windo
    需求场景svg文件的图标不直接显示内容,不如其他文件直观,但是svg文件的体积极小,因此适合网页开发中使用。最终效果解决过程https://download.cnet.com/svg-explorer-extension/3000-2248_4-78237543.htmlSVGExplorerExtensionforWindows这个软件可以解决这个问题。但......
  • Golang初学:获取主机的磁盘空间信息,gopsutil
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linux--- 序章怎么获取磁盘空间信息呢?总量、剩余等。包括,Windows、Linux主机等。使用标准库(os、fs、syscall等)可以吗?可以,网上可以找到获取Linux系统的相关信息,不过,要获取Windows的就比较麻烦......
  • 记一次手动将LATEX数学公式转换为微信公众号支持的svg过程
    前言今日发公众号转载别人的某篇文章。本来是个很简单的活,但文章里有几个公式排版炸了。虽然可以无视,但抱着挑战的心态,我还是试着去修了下。百度,不出所料,基本都是推广,不过还是有一些有用的信息。本着和微信较劲以及绝不注册新账号的精神,我决定尝试手动将LATEX公式转svg。由于这......
  • Golang初学:vs code, launch.json, Run
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linuxvscode1.89.1--- 序章在vscode开发go程序,之前总是在终端(terminal)输入命令(gorun.)来执行。不过,这不是最高效的方式。通过添加并配置launch.json可以更方便地程序仅运行(Ctrl+F5......