13

通过阅读SVG 1.1 规范,我试图了解用于定义初始视口的单位与文档其余部分使用的单位之间的关系。

如果视口最初是使用点定义
<svg width="800pt" height="1002pt" viewBox="0 0 800 1002" version="1.1">
的,并且文档的其余部分没有单位标识符,那么它是否也假定为点,或者它是否默认为某些东西?根据规范的这一部分

当坐标或长度值是没有单位标识符的数字(例如,“25”)时,则假定给定坐标或长度以用户单位为单位(即,当前用户坐标系中的值)。

有问题的 SVG 文档的路径d值为M 50.91 9.82 L 51.98 10.04 C 53.51 12.71 52.60 16.03 52.75 18.97. 我读到移动到(50.91pt,9.82pt),画一条线到(51.98pt,10.04pt),然后画一条三次贝塞尔曲线到(52.60pt,16.03pt)。

这是正确的吗?

4

1 回答 1

15

你是对的。如果初始宽度/高度以磅为单位定义,并且与视图框声明相匹配(建立用户单位和实际尺寸之间的比率),则文档其余部分的默认单位将为 1pt。

参见:http ://www.w3.org/TR/SVG/coords.html#SVGInitialUserCoordinateSystem

(但是,我应该指出,您对三次贝塞尔曲线的解释不正确 - 目标点是 52.75、18.97(也就是前两组坐标指定控制点,而不是目标点。还要注意大写的“C”表示绝对坐标(相对于小“c”是相对的))。

(另外,只是好奇——但你为什么要选择点和像素?这似乎有点不寻常,除非你打算用文本做有趣的事情。)

于 2012-10-08T23:00:55.323 回答