You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SVG实现中十进制精度的正式限制与基线规范问询

关于SVG极端viewBox尺寸下渲染与交互一致性的问题

我测试了一个带stroke-dasharray的基础SVG示例(描边圆形填充方形视口,生成四分之一切片),在不同viewBox尺寸下的表现显示,各实现间存在显著渲染和行为差异。虽然浮点精度损失是预期内的问题,但渲染效果和交互hit-box计算出错的时机远早于预期。我多次查阅SVG规范,未找到关于“不损失精度的可缩放性基线合规范围”的指南或非规范性说明。

我理解规范可能刻意模糊该问题,将其归为“视情况而定”的范畴,但仍提出以下技术问询:

  • 是否曾存在(或讨论过)相关指南,规定实现者必须保证互操作性的尺寸范围,以及允许出现差异的阈值?
  • 若存在,该指南的查阅渠道是什么?
  • 若不存在,向SVG工作组提出该议题是否合理?
  • 针对极端尺寸值向各实现厂商提交bug报告是否有意义?

测试探索与结果

以viewBox尺寸为1的极简SVG为例:

CSS样式

svg { max-height: 80vmin; }

SVG代码

<svg xmlns="http://www.w3.org/2000/svg"
 viewBox="-.5,-.5 1 1">
 <circle r=".25"
  stroke-width=".5"
  pathlength="4"
  stroke-dasharray="1,1"
  stroke="currentcolor"
  fill="none"></circle>
</svg>

该示例预期应呈现四分之一切片的正确效果(部分实现可达到),而非异常渲染结果。将所有长度和坐标值按指数级放大或缩小,理论上应得到一致结果,但实际测试显示:当viewBox尺寸超过1e+5(10000×10000)或低于1e-2(0.01×0.01)时,至少有一个SVG实现会出现渲染或hit-box计算错误。完整测试包含不同SVG引擎在极端尺寸下的渲染与hit-box差异截图。


内容的提问来源于stack exchange,提问作者myf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:05