SVG坐标系 - 点数与像素数

时间:2012-10-08 19:45:44

标签: xml svg

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

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

  

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

答案 0 :(得分:11)

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

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

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

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