《 SVG 》三、SVG 图形元素

news2024/9/21 22:47:05

一、本文概述

本文所介绍 svg 元素,为常用 svg 图形元素,蕴含 “血与肉” 的元素,本文围绕其进行实战应用;

二、 SVG 图形元素

  • <circle> 绘制正圆;
  • <ellipse> 绘制椭圆;
  • <image> 渲染图片;
  • <line> 绘制线;
  • <path> 绘制自定义路径;
  • <polyline> 绘制多个线段(首位不相连);
  • <polygon> 绘制闭合多边形(首位相连);
  • <rect> 绘制矩形;
  • <text> 绘制文字;
  • <marker> 标记(例:绘制箭头),通常配合 path、line、polyline、polygon 绘制标记;

三、实战

  • circle
    在这里插入图片描述

    • cx: center-x 中心点 x 坐标;
    • cy: center-y 中心点 y 坐标;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
    	<circle cx="60" cy="60" r="50" fill="none" stroke="blue"/>
    </svg>
    
  • ellipse
    在这里插入图片描述

    • cx: center-x 中心点 x 坐标;
    • cy: center-y 中心点 y 坐标;
    • rx: radius-x x 轴半径;
    • ry: radius-y y 轴半径;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <ellipse cx="60" cy="60" rx="50" ry="40" fill="none" stroke="blue"/>
    </svg>
    
  • image
    在这里插入图片描述

    • href: 图片路径;
    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <image href="https://csdnimg.cn/release/md/static/img/logo.122ff9c.png" height="100" width="100"  x="10" y="10"/>
    </svg>
    

  • line
    在这里插入图片描述

    • x1: 起点 x 轴坐标;
    • y1: 起点 y 坐标;
    • x2: 终点 x 轴坐标;
    • y2: 终点 y 轴坐标;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <line x1="10" y1="10" x2="100" y2="100"  style="fill:rgb(121,0,121);stroke-width:3;stroke:blue;stroke-opacity:0.5;opacity:0.5"> 
    </svg>
    
  • path
    在这里插入图片描述
    SVG 定义了六种路径命令类型,一共 20 条命令,本文仅做简要介绍,后续会有 path 元素专项解读:

    • 移动到:M、m;
    • 画线至:L、l、H、h、V、v;
    • 三次方贝塞尔曲线:C、c、S、s;
    • 二次方贝塞尔曲线:Q、q、T、t;
    • 椭圆曲线:A、a;
    • 封闭路径:Z、z;

    大写字母为绝对坐标,小写为相对坐标

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
      <path d="M 10,30
                 A 20,20 0,0,1 50,30
                 A 20,20 0,0,1 90,30
                 Q 90,60 50,90
                 Q 10,60 10,30 z" fill="blue"/>
    </svg>
    
  • polyline
    在这里插入图片描述

    • points:坐标点集合,每个坐标之间空格分割;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <polyline points="10,50 55,10 100,50 90,100 20,100" style="fill:none;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
    </svg>
    
  • polygon
    在这里插入图片描述

    • points:坐标点集合,每个坐标之间空格分割,polygon 无需指出最后的闭合坐标;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
       <polygon points="10,50 55,10 100,50 90,100 20,100" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
    </svg>
    
  • rect
    在这里插入图片描述

    • width:矩形宽度;
    • height: 矩形高度;
    • rx: 边框圆角大小;

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <rect x="10" y="10"width="100" height="100" rx="15" fill="blue"/>
    </svg>
    
  • text
    在这里插入图片描述

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
        <text x="10" y="60" font-family="Verdana" font-size="16">Hello, World</text>
    </svg>
    
  • marker
    在这里插入图片描述
    marker 常用于绘制箭头、描边填充等,本文仅做简要介绍,后续会有 marker 元素专项解读:

    • id: 唯一标识 marker 元素;
    • viewBox: 可视区域;
    • refX: x 偏移;
    • refY: y 偏移;
    • markerWidth: 标记的宽度;
    • markerHeight: 标记的高度;
    • orient: 标记的旋转方式;
      • auto: 方向随着路径的方向而自动变化。
      • auto-start-reverse:标记的方向与指定自动时使用的方向相差180°(标记方向取反)。
      • angle: 指定的角度是形状的正x轴与标记之间的距离。
      • number: 指定度的角度(-45:旋转 -45 度)。

    <svg class="border" width="120" height="120" viewBox="0 0 120 120">
    	<defs>
          <!-- 箭头 marker -->
          <marker 
          	id="arrow" 
          	viewBox="0 0 10 10" 
          	refX="5" 
          	refY="5" 
          	markerWidth="6" 
          	markerHeight="6"
            orient="auto-start-reverse">
            <path d="M 0 0 L 10 5 L 0 10 z" />
          </marker>
        </defs>
    
        <line x1="10" y1="10" x2="100" y2="100" stroke="blue" marker-end="url(#arrow)" />
    </svg>
    



—————— END —————




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023通感一体化系统架构与关键技术白皮书

1 通感一体化业务与性能指标 1.1 通感一体化业务分类 根据通信与感知的相互关系 通信辅助感知类业务&#xff1a;通信的参考信号作为感知信号&#xff0c;实现目标定位、测速、手势识别等业务——高速可靠的通信能力为感知数据的汇聚提供保障&#xff0c;能够进一步提高感知精…

人工智能时代如何加强网络安全

人工智能正在为软件开发人员赋予以前被认为难以想象的新能力。新的生成式人工智能可以提供复杂、功能齐全的应用程序、调试代码或使用简单的自然语言提示添加内嵌注释。 它已准备好以指数方式推进低代码自动化。但与此同时&#xff0c;新一代人工智能可能会为不良行为者提供帮…

Spring MVC多种情况下的文件上传

一、原生方式上传 上传是Web工程中很常见的功能&#xff0c;SpringMVC框架简化了文件上传的代码&#xff0c;我们首先使用JAVAEE原生方式上传文件来进行详细描述&#xff1a; 1.1 修改web.xml项目版本 这里我们创建新的SpringMVC模块&#xff0c;在web.xml中将项目从2.3改为3.1…

SPSS数据排序

1.个案排序 &#xff08;1&#xff09;打开数据文件&#xff0c;选择“数据”——“个案排序”&#xff0c;弹出如下图所示的对话框&#xff0c;选中“树高”&#xff0c;再选择排序&#xff08;默认&#xff09; &#xff08;2&#xff09;选中“枝下高”&#xff0c;移到右边…

【IDEA】IDEA 版 Postman 新版发布,功能强大!

介绍 Restful Fast Request 是 IDEA 版 Postman&#xff0c;它是一个强大的 restful api 工具包插件&#xff0c;可以根据已有的方法帮助您快速生成 url 和 params。Restful Fast Request API 调试工具 API 管理工具 API 搜索工具。它有一个漂亮的界面来完成请求、检查服务…

智慧校园管理系统前台任意文件上传

如果沉醉满足于自己以往的历史就无异于生命大限的终临&#xff0c;人生旅程时刻处于“零公里”处。那么&#xff0c;要旨仍然应该是首先战胜自己&#xff0c;并将精神提升到不断发展着的生活所要求的那种高度&#xff0c;才有可能使自己重新走出洼地&#xff0c;亦步亦趋跟着生…

如何在Windows 11中轻松恢复意外删除的Chrome书签

当您意外删除了 Chrome 书签或书签文件夹时&#xff0c;您可以通过以下方法在 Windows 11 中恢复它们。Windows 11 中的 Chrome 浏览器提供了方便的恢复功能&#xff0c;让您可以轻松还原被删除的书签。 打开 Chrome 浏览器并导航到右上角的菜单按钮&#xff0c;点击打开菜单选…

ROS1到ROS2迁移教程(以rslidar_to_velodyne功能包为例)+ ROS2版本LIO-SAM试跑

一、引言 1、本博文主要目的是将rslidar_to_velodyne功能包的ros1版本转换为ros2版本 2、内容会包含ROS1到ROS2迁移技巧&#xff0c;是自己总结的一套简单的流程&#xff0c;可以保证ROS2下的代码试跑成功&#xff0c;如果需要将代码进一步转化为类的实现的方式&#xff0c;自…

开源教育对话大模型 EduChat

文章目录 一、&#x1f680; 前言二、&#x1f916; 本地部署三、&#x1f468;‍&#x1f4bb; 使用示例四、&#x1f50e; 总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、&#x1f680; 前言 教育是一项对人类身心发展产生影响的社会实践…

Elasticsearch 8.X 聚合查询下的精度问题及其解决方案

1、线上环境问题 咕泡同学提问&#xff1a;我在看runtime文档的时候做个测试&#xff0c; agg求avg的时候不管是double还是long&#xff0c;数据都不准确&#xff0c;这种在生产环境中如何解决啊&#xff1f; 2、问题归类及出现场景 上述问题可以归类为&#xff1a;Elasticsear…

【计算机组成与体系结构Ⅰ】实验3 微程序控制器实验

一、实验目的 了解微程序控制器的组成原理 二、实验设备 TEC-4实验系统、万用表 三、实验内容 1&#xff1a;阅读微指令格式和微程序控制器的组成&#xff0c;微指令由操作控制和顺序控制两部分组成&#xff0c;1条微指令的字长35位&#xff08;一个存储单元35位&#xff0c;采…

xml建模----详细完整,易懂结合代码分析

目录 一.XML建模是什么 二.XML建模有什么作用&#xff1f;&#xff1f;&#xff1f; 三.XML建模的案例 以config.xml为例 一.XML建模是什么 将XML配置文件中的元素、属性、文本信息转换成对象的过程叫做XML建模 二.XML建模有什么作用&#xff1f;&#xff1f;&#xff1f; …

Git命令操作【全系列】

Git常用命令操作 1 基础命令 ①git config --global user.name [‘你的用户名’]&#xff1a;查看/设置 git config --global user.name ziyi&#xff1a;设置用户名为ziyi git config --global user.name&#xff1a;查看用户名 ②git config --global user.email [‘你的邮…

React 在Dva项目中修改路由配置,并创建一个自己的路由

之后的话 我们还是来看一下Dva路由的配置 首先 我们在项目刚创建完 他就给了我们一个路径 叫routes 然后 IndexPage.js 是最初的一个组件 之前我们也用过了 然后 我们看到 src目录下的 index.js 这里 就有一个路由的匹配 他加载的就是 同目录下 一个 router的文件 我们点开…

外币兑换----贪心1 (爱思创)

源代码 #include <bits/stdc.h> using namespace std; int main() {double money,maxn-1,r;cin>>money;for(int i1;i<12;i){cin>>r;maxnmax(maxn,money*r);}printf("%0.2f",maxn);return 0; }

阿里云通义万相官网申请地址

通义万相刻削生千变&#xff0c;丹青图“万相”。我是通义万相&#xff0c;一个不断进化的AI绘画创作模型https://wanxiang.aliyun.com/现在申请的人少 应该好通过吧

软考高级之系统架构师系列之系统配置与性能评价、信息化基础

系统配置与性能评价 性能 计算机系统的性能一般包括两个大的方面&#xff1a; 可用性&#xff0c;也就是计算机系统能正常工作的时间&#xff0c;其指标可以是能够持续工作的时间长度&#xff0c;也可以是在一段时间内&#xff0c;能正常工作的时间所占的百分比处理能力&…

MySQL练习题(3)

创建数据库插入数据 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT N…

ndoe中express框架的基本使用,接收get、post请求,以及处理回调地狱的优雅解决方法

一、express框架的基本使用 Express框架是Node.js中最受欢迎的web开发框架&#xff0c;它的设计简洁而且功能强大&#xff0c;有着大量的插件和社区支持。 基于Express使用Node.js创建web应用的基本步骤如下&#xff1a; 首先你需要安装Node.js和npm&#xff08;Node包管理器…

拥抱简洁:探索Stylus的简洁语法与CSS预处理器之美

文章目录 1. 简洁的语法2. 强大的功能3. 嵌套规则4. 变量支持5. Mixin 混合6. 扩展支持7. 条件语句8. 内置函数9. 可扩展性10. 轻量高效附录&#xff1a;前后端实战项目&#xff08;简历必备&#xff09; 推荐&#xff1a;★★★★★ Stylus 是一种 CSS 预处理器&#xff0c;具…