当前位置: 首页 > news >正文

(4)SVG-path中的椭圆弧A(绝对)或a(相对)

1、概念

表示经过起始点(即上一条命令的结束点),到结束点之间画一段椭圆弧

2、7个参数

rx,ry,x-axis-rotation,large-arc-flag,sweep-flag,x,y

(1)和(2)rx,ry

rx:椭圆的x轴半径(即水平半径)
ry:椭圆的y轴半径(即垂直半径)
这两个参数好理解,就是椭圆的两条对称轴半径,相等即为圆

也可以写比例,写比例时默认用符合条件的最小值,此时参数4就没有意义了(会出现下图右侧的情况)

(3)x-axis-rotation

椭圆x轴相对于当前坐标系的旋转角度,以度数表示,顺时针为正

 

(4)large-arc-flag

大弧标志,0表示绘制小弧,1表示绘制大弧。弧线有两个不同的弧度(小于180度的弧和大于180度的弧),该标志用于指定使用哪种弧度,简单理解就是短弧和长弧


(5)sweep-flag

扫掠标志,0表示弧线从起点到终点沿逆时针方向绘制,1表示沿顺时针方向绘制


(6)x(7)y

终点的x坐标(x,y)
 

3、用法

参数之间用空格隔开,如:

Arx ry x-axis-rotation large-arc-flag sweep-flag x y例:M50 100 A50 100 0 1 0 150 100表示:经过(50, 100)这点,画一段x轴为50,y轴为100,绕x轴顺时针方向旋转角度为0°,取长弧,沿逆时针画的一段椭圆弧

4、绘制流程

(1)先绘制椭圆

首先,抛开起点和终点,通过rx和ry,我们可以确定一个椭圆

(2)旋转角度

接着,我们确定其旋转角度x-axis-rotation,使其x轴顺时针旋转,假设为30°

 

 (3)移动椭圆,使椭圆周边去适配到起点和终点坐标

接着,我们需要让它经过起点和终点,通过移动椭圆,使其能够经过起点和终点,可能的情况会有4种

如上,有两种情况

第一种,椭圆较大,可经过起点终点,此时可能的弧线有四条,如上图左侧

第二种,椭圆较小,无法经过起点终点,绘制时会等比放大,使其达到刚好能经过起点终点的状态,可能的弧线依旧会有四条,但有两条重叠(相同),如上图右侧

(4)根据参数4(large-arc-flag)和5(sweep-flag)确定唯一的一条弧

我们需要通过第4、5两个参数确定一条唯一的弧

  • 第4个参数确定选择长的还是短的
  • 第5个参数确定选择顺时针绘制还是逆时针绘制的(从起点到终点),在上图的体现为上下

 最后,我们即可确定唯一的一条弧

  • M100 150 A55 100 30 1 1 200 150为可能弧1
  • M100 150 A55 100 30 0 1 200 150为可能弧2
  • M100 150 A55 100 30 0 0 200 150为可能弧3
  • M100 150 A55 100 30 1 0 200 150为可能弧4

相关文章:

(4)SVG-path中的椭圆弧A(绝对)或a(相对)

1、概念 表示经过起始点(即上一条命令的结束点),到结束点之间画一段椭圆弧 2、7个参数 rx,ry,x-axis-rotation,large-arc-flag,sweep-flag,x,y (1)和(2&a…...

docker国内镜像源报错解决方案

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 遇到 Job for docker.service failed because the control process exited with error …...

《C++进阶之路:探寻预处理宏的替代方案》

在 C编程的历程中,预处理宏曾经扮演了重要的角色。然而,随着 C语言的不断发展和编程理念的进步,预处理宏的一些弊端也逐渐显现出来。那么,C中的预处理宏的替代方案有哪些呢?本文将深入探讨这个问题,为你揭示…...

【综合案例】使用鸿蒙编写掘金评论列表案例

效果展示 功能描述 整个页面分为三大模块:顶部 主体【评论列表】 底部。 点击顶部的最新和最热按钮可以进行切换,点击最新按钮的时候主体部分的评论列表是按照时间由近至远进行排列展示,点击最热按钮的时候主体部分的评论列表是按照点赞数…...

【springboot】使用缓存

目录 1. 添加依赖 2. 配置缓存 3. 使用EnableCaching注解开启缓存 4. 使用注解 1. 配置缓存名称 2. 配置缓存的键 3. 移除缓存 5. 运行结果 1. 添加依赖 <!-- springboot缓存--><dependency><groupId>org.springframework.boot</groupId>…...

<Linux> 基础IO

目录 一、C语言文件IO 1. 基础认知 2. stdin、stdout、stderr 3. 文件接口汇总 4. 文件写入 5. 文件读取 6. 标志位传递 7. 总结 二、系统文件IO 1. 文件系统调用open 1.1 pathname &#xff1a; 1.2 flags &#xff1a; 1.3 mode&#xff1a; 1.4 open函数返回值&#xff1a;…...

OpenFeign的使用(一)

OpenFeign的定义 OpenFeign是一个声明式的Web服务客户端&#xff0c;它简化了编写Web服务客户端的过程&#xff0c;使得微服务间的通信更加简单和灵活。它主要作用于帮助开发者方便地调用远程服务&#xff0c;让远程调用像本地方法调用一样简单。 事实上&#xff0c;远程调用的…...

【Python报错已解决】`AttributeError: move_to requires a WebElement`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言&#xff1a;一、问题描述&#xff1a;1.1 报错示例&#xff1a;1.2 报错分析&#xff1a;1.3 解决思路&#xff…...

数据结构(邓俊辉)学习笔记】排序 2——快速排序:性能分析

文章目录 1. 不稳定 就地2. 最好情况 最坏情况3.平均情况 1. 不稳定 就地 以下针对刚才所给出的快速排序算法的第一个版本&#xff0c;就其性能做一分析。 首先很遗憾地发现&#xff0c;这个算法是不稳定的。快速排序算法的不稳定性通过我们刚才所举的那个实例可以清楚地看…...

在postman中使用javascript脚本生成sign签名

大多数线上api接口服务都需要提供签名才可以正常访问。虽然带来了安全&#xff0c;单有时为了快速验证接口的某个功能&#xff0c;就不得不编写代码&#xff0c;计算签名然后再请求。那么&#xff0c;使用postman提供的script功能&#xff0c;是否能实现签名计算功能吗&#xf…...

设计模式—2—单例模式

文章目录 一、单例模式概述二、单例模式特点三、示例3.1、基本实现&#xff08;懒汉式-线程不安全&#xff09;3.2、基本实现&#xff08;懒汉式-线程安全&#xff09;3.3、基本实现&#xff08;饿汉式&#xff09; 四、总结 一、单例模式概述 单例模式&#xff08;Singleton …...

服务器数据恢复—磁盘坏扇区导致raid6阵列崩溃的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台存储中有一组由12块SAS硬盘组建的raid6磁盘阵列&#xff0c;划分了1个卷&#xff0c;由数台Vmware ESXI主机共享存储。卷中存放了大量的Windows系统虚拟机。这些虚拟机系统盘大小一致&#xff0c;数据盘大小不确定&#xff0c;数据盘都…...

原码、反码、补码

目录 背景: 1.原码 举例: 2.反码&#xff1a; 举例 : 3.补码&#xff1a; 举例&#xff1a; 背景: 在计算机科学中&#xff0c;原码、反码和补码是三种用于表示有符号整数&#xff08;即包含正负数&#xff09; 的二进制编码方式。它们各自有其独特的定义和用途&#x…...

排序算法之计数排序详细解读(附带Java代码解读)

计数排序&#xff08;Counting Sort&#xff09;是一种非比较型的排序算法&#xff0c;它通过统计每个元素的出现频率&#xff0c;然后计算元素的位置信息&#xff0c;最后将元素放到正确的位置&#xff0c;从而实现排序。计数排序特别适用于元素范围有限的情况&#xff0c;比如…...

Linux:如何使用 Crontab

今天想了解一下Linux Crontab。嗯&#xff0c;在Windows上&#xff0c;可以看做和定时任务差不多。 “要在特定时间进行特定工作。” 如果是这样&#xff0c;可以使用crontab&#xff0c;轻松使用Linux。 1. 基本 (crontab basic) 先看一下基本的crontab使用方法吧。在Linu…...

AI模型:追求全能还是专精?-- 之7 智能工厂程序设计

Q1、感觉上上面离我想做的事情却来越远了。我们跳过讨论直接进入程序设计吧。StringProcessor&#xff08;文字/信息/数字&#xff09;抽象代理工厂-创造 Universal given时空区域 |bar PROCESS: 页面版块的图式schema/概念的KE图式CaseFilter 一般应用工厂-制造- General sign…...

如何在本地服务器部署SeaFile自托管文件共享服务结合内网穿透打造私有云盘?

文章目录 1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 下载安装3.2 Cpolar注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4.公网访问测试5.结语 1. 前言 本文主要为大家介绍&#xff0c;如何使用两个简单软件…...

学习记录:js算法(二十五):合并两个有序链表

文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一 示例 1&#xff1a;&#xff08;如图一&#xff09; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] …...

43. 1 ~ n 整数中 1 出现的次数【难】

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9843.%201%EF%BD%9En%E6%95%B4%E6%95%B0%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0/README.md 面试题 43. 1 &#xff5e; n 整数中 1 …...

K8S - 理解volumeMounts 中的subpath

在上一篇文章中 springboot service如何动态读取外部配置文件 介绍了springboot 中如何实时读取外部配置文件的内容 部署在K8S 接下来我把它部署在k8s 首先&#xff0c; 我们把配置文件放入项目某个目录 这步部是必须的&#xff0c; 毕竟我们要引入是项目外部的文件&#xf…...

QMCDecode技术解密:让加密音频重获自由的无损转换方案

QMCDecode技术解密&#xff1a;让加密音频重获自由的无损转换方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转…...

SPIRAN ART SUMMONER企业集成:Java面试题中的AI应用解析

SPIRAN ART SUMMONER企业集成&#xff1a;Java面试题中的AI应用解析 掌握AI集成核心考点&#xff0c;轻松应对Java面试中的技术难题 1. 企业级AI集成面试要点 在Java技术面试中&#xff0c;SPIRAN ART SUMMONER这类AI模型的集成能力已经成为衡量候选人综合技术水平的重要标准。…...

ComfyUI 高频报错排查与修复指南(实战经验总结)

1. ComfyUI环境依赖冲突的终极解决方案 第一次打开ComfyUI就遇到红色报错提示&#xff1f;八成是环境依赖出了问题。我见过太多开发者在这个环节卡住好几天&#xff0c;其实大部分问题都有固定解法。先别急着重装系统&#xff0c;跟着我的排查清单一步步来。 最常见的环境冲突往…...

立体视觉入门避坑:为什么你的双目深度估计总是不准?从标定到匹配的5个常见误区

立体视觉实战指南&#xff1a;深度估计不准的五大技术陷阱与解决方案 刚完成双目标定的工程师们常会遇到这样的困境&#xff1a;明明按照教程一步步操作&#xff0c;生成的深度图却充满噪声&#xff0c;物体边缘模糊不清&#xff0c;甚至出现大面积空洞。这不是算法本身的缺陷&…...

参数党VS体验派?雅马哈、卡西欧、费森4款热门电钢琴型号终极对决,结果有点意外!

你是否也有这样的时刻&#xff1f;练习时间在不断累积&#xff0c;指法日渐熟练&#xff0c;可弹奏出的声音却依然显得机械、平淡&#xff0c;甚至有点“假”。那种在琴行试弹顶级三角钢琴时&#xff0c;指尖与琴键、琴弦与空气共鸣所带来的微妙震颤与心灵悸动&#xff0c;在自…...

Cogito-v1-preview-llama-3B应用探索:建筑行业BIM文档智能摘要系统

Cogito-v1-preview-llama-3B应用探索&#xff1a;建筑行业BIM文档智能摘要系统 1. 引言&#xff1a;建筑行业的文档挑战与AI机遇 建筑行业每天产生海量的BIM文档——设计图纸、施工方案、材料清单、进度报告&#xff0c;这些文档往往长达数百页&#xff0c;工程师和项目经理需…...

锁相双极性PWM电机驱动原理与STM32实现

1. 项目概述Motor_LockedAntiphase是一个面向嵌入式电机控制的轻量级驱动库&#xff0c;专为实现锁相双极性PWM&#xff08;Locked Antiphase PWM&#xff09;控制模式而设计。该模式广泛应用于直流有刷电机&#xff08;DC Brushed Motor&#xff09;的双向调速与精确力矩控制场…...

002、环境搭建:Python虚拟环境、LangChain安装与核心依赖解析

002、环境搭建&#xff1a;Python虚拟环境、LangChain安装与核心依赖解析从一次深夜调试说起 上周三凌晨两点&#xff0c;我被一个诡异的错误钉在屏幕前&#xff1a;明明本地测试通过的LangChain智能体&#xff0c;在同事的机器上死活跑不起来。报错信息指向一个版本冲突——py…...

FPGA开发必备:Vivado中ILA和FIFO Generator的深度调试指南

FPGA信号捕获与数据流优化&#xff1a;Vivado调试双核实战手册 在FPGA开发中&#xff0c;调试环节往往占据项目周期的40%以上时间。当仿真验证无法复现的硬件异常出现时&#xff0c;如何快速定位信号跳变问题&#xff1f;当数据吞吐遇到瓶颈时&#xff0c;怎样优化存储结构提升…...

UIO与CCP917T驱动开发实战

1、UIO基础2、UIO和CCP917T结合3、和内核驱动结合...