首页 文章

SVG坐标系 - 点数与像素数

提问于
浏览
9

通过SVG 1.1 specification阅读,我试图理解用于定义初始视口的单位与整个文档其余部分使用的单位之间的关系 .

如果最初使用点定义视口
<svg width="800pt" height="1002pt" viewBox="0 0 800 1002" version="1.1">
并且文档的其余部分没有单位标识符,它是否也是假设点,还是默认为某些东西?根据this part of the spec

当坐标或长度值是没有单位标识符的数字(例如,“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) .

这是否正确?

1 回答

  • 9

    你是对的 . 如果初始宽度/高度以点为单位定义,并且与视图框声明( Build 用户单位和实际大小之间的比率)匹配,那么文档其余部分的默认单位将为1pt .

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

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

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

相关问题