xml - SVG 坐标系 - 点与像素

标签 xml svg

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

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

When a coordinate or length value is a number without a unit identifier (e.g., "25"), then the given coordinate or length is assumed to be in user units (i.e., a value in the current user coordinate system).

有问题的 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)。

这些都是正确的吗?

最佳答案

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

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

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

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

关于xml - SVG 坐标系 - 点与像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788422/

相关文章:

angular - SVG 模式在 Safari 中不起作用

javascript - D3 过渡。在折线图上使用多条线,并希望在按下按钮时在线之间平滑过渡

svg - 您可以将多个 svg 与不同的 viewBox 结合起来并在 Polymer 中自定义每个吗?

javascript - 如何在 Sencha Touch 中的 Google map 上的 svg 上添加触摸并按住事件

html - 让 SVG 在 HTML 页面中保持纵横比

android - 服务器无法处理您的请求,值不能为空 :soap parsing

java - WS响应解析我的xml字符串 '<'到 '&lt'

JAVA:使用 XPath 表达式构建 XML 文档

python - 为什么在 Odoo v11 中删除了工作流?

java - 如何从包含第三方库使用的自定义注释的 XML/XSD 动态创建 Java 对象