热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

svg之path

svg之path1.path标签用法:给出一个坐标点,在坐标点前添加一个英文字母,表示是如何移动到此坐标点2.path标签格式

svg之path


1.path标签用法:

  给出一个坐标点,在坐标点前添加一个英文字母,表示是如何移动到此坐标点

2.path标签格式:

  1).水平坐标和垂直坐标使用,隔开
  2).多个坐标点之间使用空格
  3).坐标点前添加一个英文字母
  4).水平坐标和垂直坐标之间可以使用,或者空格隔开 但是推荐使用,隔开

3. 英文字母按照功能可分为3大类:


3.1 移动和直线类

   1) M(x,y)+ 将画笔移动到当前点,后面如果有重复参数,会当做L命令处理
   2) L(x,y)+ 绘制直线到指定位置
   3) H(x)+ 绘制水平线到指定的x位置
   4) V(y)+ 绘制竖直线到指定的y位置
   5) m、l、h、v使用相对位置绘制

3.2 贝塞尔曲线类

   1) C三次贝塞尔曲线
   三次贝塞尔曲线有两个中间点三条线段,cubic是三次的,立方的的意思,所以使用C命令来绘制三次贝塞尔曲线
在这里插入图片描述



   2) S光滑三次贝塞尔曲线
   S命令可以用来创建与前面一样的贝塞尔曲线,
      (1)但是,如果S命令跟在一个C或S命令后面,则它的第一个控制点会被假设成前一个命令曲线的第二个控制点的中心(镜像)对称点。只需要输入第二个控制点和结束点,即可绘制光滑三次贝塞尔曲线
      (2)如果S命令单独使用,前面没有C或S命令,那当前点将作为第一个控制点。
在这里插入图片描述



   3) Q二次贝塞尔曲线
   两次贝塞尔曲线有一个中间点,quadratic是两次的,二次方程式的意思,所以使用Q命令来进行二次贝塞尔曲线绘制。
在这里插入图片描述


   4) T光滑二次贝塞尔曲线
   与前一条二次贝塞尔曲线相连,控制点为前一条二次贝塞尔曲线控制点的对称点,只需要输入终点,即可绘制一个光滑二次贝塞尔曲线
在这里插入图片描述



3.3 弧线命令

   命令语法:Arx,ry.xr,laf,sf,x,y
   属性解释:
      rx: 椭圆x方向的半轴大小。
      ry: 椭圆y方向的半轴大小。
      xr: 椭圆的x轴与水平轴顺时针方向的夹角(一般正圆弧这个夹角都是0度)
      laf: 有两个值(1: 大角度弧线、0: 小角度弧线)
      sf: 有两个值(1: 顺时针至终点、0: 逆时针至终点)
      x: 终点x坐标
      y: 终点y坐标

  SVG的弧线使用A(rx,ry.xr,laf,sf,x,y)命令来完成,原理是通过截取一个椭圆的弧线而得到想要的弧线,

  那么我们首先要构造一个椭圆:使用rx,ry,xr三个参数来构造这个椭圆,rx是椭圆的x半轴长,ry是y半轴长,xr是是弧线所在椭圆的长轴角度。

在这里插入图片描述

  其次,我们发现这样构造出来的椭圆其实有两种,而起点到终点的弧线有四种,所以我们需要使用laf、sf、x、y四个参数来选择想要的弧线。laf表示是否选择较长弧,sf表示是否选择逆时针方向那条弧。

在这里插入图片描述
  绘制一条弧线实例:

 

在这里插入图片描述

  示例分析:a用了小写英文字母,表示相对坐标,当前画笔位置(100,200),所以终点位置为(100+150,200-150)即(250,50)。绘制一条弧线 x和y方向半径是200和150 椭圆的x轴和水平轴方向夹角为0°,采用大角度、逆时针方向走向终点。Z表示绘制一条直线将起始点和终点连接起来,封闭图形


4.闭合类


4.1 Z 后面不跟参数,作用绘制一条直线将起始点和终点连接起来,封闭图形

  上诉命令都是用大写英文字母表示,表示坐标系中的绝对坐标,也可以用小写英文字母,表示的是相对坐标(相对于当前画笔所在点)


推荐阅读
  • 本文介绍了如何使用 Gesture Detector 和 overridePendingTransition 方法来实现滑动界面和过渡动画。 ... [详细]
  • 编写SharePoint的EventReceiver需要用到ListTemplateID来进行绑定,下面的列表对于编程和排查错误都是个很好的索引.Listtem ... [详细]
  • 本文介绍了如何使用开源工具ChkBugReport来解析和分析Android设备的Bugreport。ChkBugReport能够将复杂的Bugreport转换为易于阅读的HTML报告,并提供详细的图表和分析结论。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文介绍了 JSON Schema 和 XML Schema 的基本概念,并详细讲解了如何使用 AJV 进行 JSON 数据校验。通过具体的示例和扩展方法,帮助读者更好地理解和应用这些工具。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • 本文介绍了如何在Spring框架中使用AspectJ实现AOP编程,重点讲解了通过注解配置切面的方法,包括方法执行前和方法执行后的增强处理。阅读本文前,请确保已安装并配置好AspectJ。 ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • 在React中使用setState时遇到错误,本文将详细分析错误原因并提供解决方案。 ... [详细]
  • 本文介绍了一种使用CSS3和jQuery实现的35款SVG图标加载动画。这些动画不仅视觉效果出色,还能提升用户体验。通过本文,您可以了解如何在项目中应用这些动画。 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 本文主要介绍如何使用标签来优化Android应用的UI布局,通过减少不必要的视图层次,提高应用性能。 ... [详细]
  • 事件是程序各部分之间的一种通信方式,也是异步编程的一种实现形式。本文将详细介绍EventTarget接口及其相关方法,以及如何使用监听函数处理事件。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
author-avatar
wwhh47123_829
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有