可以在 SVG 文件中使用 IEEE 754 格式浮点数以提高精度
Can use IEEE 754 format floating point in SVG file for precision
SVG 支持使用 IEEE 754 32 位浮点格式 draw/save 高精度对象?
这里的示例 SVG 文件使用大端 IEEE 浮点格式在 (50; 50) 处绘制半径为 100 的黑色圆圈,填充不透明度为 1.0:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg version="1.1" width="100" height="100" >
<circle cx="#42480000" cy="#42480000" r="#42C80000" fill="#000000" fill-opacity="#3F800000" stroke="none" />
</svg>
在Inkscape中打开文件不显示圆圈,轮廓模式也不显示。我想不支持 IEEE float。
之所以要使用这种形式,使用十六进制浮点数在写入文件时转换十进制不会丢失精度,然后在读取文件时转换回十六进制。对使用 SVG 替换 PDF 很有用。
不,SVG 不允许您通过非十进制表示形式指定数字。
好消息是,您不必这样做。您只需指定足够精确的数字来唯一标识您所指的浮点值。如何执行此操作将取决于您的编程语言和 XML/SVG 库,但如果您只想准确表示特定的浮点值,则无需使用非十进制表示。
SVG 支持使用 IEEE 754 32 位浮点格式 draw/save 高精度对象?
这里的示例 SVG 文件使用大端 IEEE 浮点格式在 (50; 50) 处绘制半径为 100 的黑色圆圈,填充不透明度为 1.0:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg version="1.1" width="100" height="100" >
<circle cx="#42480000" cy="#42480000" r="#42C80000" fill="#000000" fill-opacity="#3F800000" stroke="none" />
</svg>
在Inkscape中打开文件不显示圆圈,轮廓模式也不显示。我想不支持 IEEE float。
之所以要使用这种形式,使用十六进制浮点数在写入文件时转换十进制不会丢失精度,然后在读取文件时转换回十六进制。对使用 SVG 替换 PDF 很有用。
不,SVG 不允许您通过非十进制表示形式指定数字。
好消息是,您不必这样做。您只需指定足够精确的数字来唯一标识您所指的浮点值。如何执行此操作将取决于您的编程语言和 XML/SVG 库,但如果您只想准确表示特定的浮点值,则无需使用非十进制表示。