在SVG文件,我发现它看起来像这样的路径:请解释SVG路径命令和坐标
<path id="kvg:0548b-s7" kvg:type="㇐b" d="M65.32,48.38c5.65-0.95,12.61-2.46,18.92-3.42c2.05-0.45,4.13-0.5,6.23-0.13"/>
有人可以解释一下坐标48.38c5.65-0.95
和18.92-3.42c2.05-0.45
代表什么?
在SVG文件,我发现它看起来像这样的路径:请解释SVG路径命令和坐标
<path id="kvg:0548b-s7" kvg:type="㇐b" d="M65.32,48.38c5.65-0.95,12.61-2.46,18.92-3.42c2.05-0.45,4.13-0.5,6.23-0.13"/>
有人可以解释一下坐标48.38c5.65-0.95
和18.92-3.42c2.05-0.45
代表什么?
我认为有些混淆来自格式允许将各个参数分离到各种路径操作数的技巧。因此,在例如:
M65.32,48.38c5.65-0.95,12.61-2.46,18.92-3.42c2.05-0.45,4.13-0.5,6.23-0.13
你看参数
由于每种操作数都需要一定数量的参数(M,L,T需要2; H,V需要1; Q,S需要4; C需要6;需求7; Z需要0)你会看到操作数被忽略的情况。如果你看到后面有4个参数的L,它实际上意味着2行,C后面有18个参数,这意味着3立方贝塞尔。
这是为了最大限度地减少SVG中的浪费空间,而不仅仅是为了使其难以阅读。
SVG的<path>
标记的d
属性包含一系列处理指令或描述,以创建SVG的整体形状。这些指令可以是不同的类型:
M
或m
语法)L
或l
语法,或H
和V
,或h
和v
)C
或c
语法)A
或a
语法)Z
或z
语法)大写字母语法表示给出绝对位置值。小写语法表示相对位置值,即,后续坐标从当前控制点向下和向右找到。
您的SVG的d
属性中提供的说明以大写字母M
开头,该大写字母表示Moveto
命令的绝对位置值。但是也存在小写的c
命令,其表示Curveto
指令集的相对值。
关于第一个坐标则是问有关...
Moveto
命令有两个参数。在您要查询的第一个值的第一个段中,48.38是命令的轴参数y
(其跟随x
参数65.32)。其余的c5.65-0.95是新的Curveto
指令集的开始。
Curveto
命令有三个参数,由x
和y
对组成,每个对由短划线(-
)分隔开。由于它以小写字母c
给出,因此后面的值是相对的。第一对是开始曲线的控制点,第二对是结束曲线的控制点,第三对是定义曲线开始的当前点的坐标。
关于您询问的第二组坐标...
的18.92-3.42是由第一Curveto
命令定义的当前点(第三个参数),并且c2.05-0.45是下一Curveto
命令的第一个参数,其控制贝塞尔曲线的起点。
这些值中的点是小数点。
如果按d
属性将其拆分,根据文档中定义的参数个数,每条命令的指令集将变为much more readable。
有关贝塞尔曲线的更多信息,see here。
感谢您的答案我知道它是x和y坐标,但什么是18.92-3.42c2.05-0.45。我的意思是这不是一个数字。 'c'字母和' - '符号代表什么。 为什么有多个点? –
使用更新进行编辑... – jacefarm
https://www.w3.org/TR/SVG/paths.html#PathData –