利用SVG的path元素中的A命令绘制圆形

news/2024/11/17 0:20:53/
## 利用SVG的path元素中的A命令绘制圆形

<path d="M cx, cym -r, 0a r,r 0 1,0 (r * 2),0a r,r 0 1,0 -(r * 2),0"/>或者<path d="M cx - r, cya r,r 0 1,0 (r * 2),0a r,r 0 1,0 -(r * 2),0"/>
  1.  cx,cy开始坐标,r圆弧半径;
  2. A命令后面的两个参数表示的是绝对坐标;
  3. a命令后面的两个参数表示的是相对坐标;
一. 预备知识

1.SVG坐标系
x=0,y=0点在左上角,向右x值增加,向下y值增加;
2.M命令和m命令
M100,100:大写M表示移动到绝对坐标(100,100),从这里开始画图;
m-75,0:小写m表示相对坐标,这里在大写字母后面表示的绝对坐标是:(25,100),即M100,100  m-75,0   表示从坐标(25,100)的位置开始画图
3.给定圆弧半径,经过平面上两点的圆弧圆心落在两点的中垂线上,  一般有两个
4.A命令:绘制一个椭圆圆弧
A rx ry x-axis-rotation large-arc-flag sweep-flag X Y,表示绘制一个椭圆圆弧经过(X,Y)点。
rx:椭圆横轴半径
ry:椭圆竖轴半径
x-axis-rotation:椭圆横轴相对于CanvasX轴的偏移角度
large-arc-flag:在前面三个参数确定的情况下,满足当前点到指定点(X,Y)位置条件的圆弧总是有四条,此值取0表示绘制小弧度,取值1表示绘制大弧度
sweep-flag:在前三个参数确定的情况下,满足当前点到指定点(X,Y)位置条件的圆弧总是有四条,去掉上面large-arc-flag标识后还有两个,sweep-flag 取值0表示绘制逆时针方向的圆弧,取值1表示绘制顺时针方向的圆弧。

 二:示例
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg"><path  id="circle" d="M 100, 100m -75, 0a75,75 0 1,0 150,0a75,75 0 1,0 -150,0"style="stroke:#000000;fill:#f0f0f5"/><path  id="left" d="M25, 100L100,100"style="stroke:#00ffff;"/><path id="right" d="M100, 100L175,100"style="stroke:#ff00ff;"/><path id="top" d="M100, 100L100,25"style="stroke:#ffff66;"/><path id="bottom" d="M100, 100L100,175"style="stroke:#ccccff;"/>
</svg>
path:left,right,top,bottom为辅助说明的四条直线;

 三:示例说明
1. M100,100:移动到点(100,100);

2. m-75,0:移动到坐标(100,100)的相对坐标(-75,0)处,即绝对坐标(25,100)处;

3.a75,75 0 1,0 150,0:经过点(25,100)和其相对坐标(150,0)(绝对坐标是(175,100)),半径是75,按逆时针方向画弧,执行完之后得到下半部半圆,点的坐标到达(175,100)处;

4. a75,75 0 1,0 -150,0:经过点(175,100)和其相对坐标(-150,0)(绝对坐标是(25,100)),半径是75,按逆时针方向画弧,执行完之后得到上半部半圆;


svg图像

 四:参考

1. https://brucewar.gitbooks.io/svg-tutorial/15.SVG-path%E5%85%83%E7%B4%A0.html
2. https://blog.csdn.net/u013478336/article/details/52277875
3. https://codepen.io/jakob-e/pen/bgBegJ

http://www.ppmy.cn/news/146739.html

相关文章

WPF:Path详解,包括直线(LineSegment)弧线(ArcSegment)贝塞尔曲线(BezierSegment)

使用Path作图&#xff0c;有两种方法设置Path.Data&#xff1a; 使用PathGeometry对象 如&#xff1a;画的是一个带箭头边框。Path.Data由一系列的Segment组合而成。 <Path Stroke"Red"><Path.Data><PathGeometry><PathFigure StartPoint&quo…

TensorFlow 删除 YAML 支持,建议 JSON 作为替补方案!

TensorFlow&#xff0c;作为一个主流的开源 Python 库&#xff0c;最初由 Google 开发用于机器学习领域&#xff0c;逐渐成为 GitHub 顶级开源 TOP 10 项目之一。 近日&#xff0c;Google TensorFlow 项目团队宣布了一项重大的改变&#xff0c;由于存在一个关键代码执行漏洞&a…

svg画半圆详解(L指令、M指令、A指令)

svg画半圆 了解画半圆的各个指令L指令M指令A指令画整半圆 推荐&#xff1a;svg画整圆详解推荐&#xff1a;svg的text标签字体、颜色、样式、大小、居中详解 接到需求&#xff0c;要求做出一个这样的活动转盘&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;所有文…

倍福---通过EL6070授权流程

TwinCAT 3.1提供了通过EtherCAT终端EL6070管理TwinCAT软件许可证的选项。EL6070包含模块化EtherCAT I/O系统中的硬件许可证密钥。本文介绍基于EL6070模块做授权的操作流程。 操作流程 1.1. EL6070模块介绍 1.1.1. 外观 TwinCAT 3.1提供了通过EtherCAT终端EL6070管理TwinCAT软件…

使用HbuilderX3.8.3_把开发的小程序发布为Html5页面上传到_免费托管空间---uniapp_小程序开发工作笔记009

首先使用hbuider开发完程序,然后,再去,点击发型,然后选择 上传网站到服务器,然后选择 选择新建,然后点击 新建以后然后这里点击新建服务空间,然后再去 这里选择免费服务空间,然后 然后点击立即购买,然后 点

用DIV+CSS技术制作个人博客网站(web前端网页制作课期末作业)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

L10

1.利用牛客的递推方法&#xff1a; class Solution {public boolean isMatch(String s, String p) {if(s null || p null) return false;char[] str s.toCharArray();char[] pattern p.toCharArray();return judge(str, 0, pattern, 0);}public boolean judge(char[]str, …

对于时间期间标识,怎么拆分运算的?

业务需求&#xff1a;薪资核算时&#xff0c;系统会根据核算期间员工的状态&#xff0c;将数据拆分成不同的期间段&#xff0c;以用作逻辑处理&#xff0c;造成时间期间标识分段的常见原因有&#xff1a;员工人事事件发生变动&#xff08;如&#xff1a;入职、调动、离职、转正…