如何使用此 js svg 解析器将 svg 文件或元素中的路径小数位更改为 n 位小数
How to use this js svg parser to change the path's decimal places in an svg file or element to n decimals?
有一个svg解析器,它很少做svg优化,包括更改svg路径的小数位。 如果您使用 snap SVG 并创建一个路径元素:
var paper = Snap("100%","100%").attr({"viewbox":"0,0,500,600"});
var pth = paper.path("M89.86111111111111,140.00000000000003C89.30555555555556,138.61111111111114,88.61111111111111,137.6388888888889,87.63888888888889,136.94444444444446C86.66666666666667,136.25000000000003,85.55555555555556,135.97222222222223,84.58333333333334,135.97222222222223C83.33333333333334,135.97222222222223,82.22222222222223,136.25000000000003,81.38888888888889,136.80555555555557C80.55555555555556,137.36111111111114,79.86111111111111,138.19444444444446,79.30555555555556,139.16666666666669C78.75,140.1388888888889,78.33333333333333,141.25000000000003,78.05555555555556,142.50000000000003C77.77777777777777,143.75000000000003,77.77777777777777,145.00000000000003,77.77777777777777,146.25000000000003C77.77777777777777,147.6388888888889,77.91666666666667,148.8888888888889,78.19444444444444,150.1388888888889C78.47222222222223,151.3888888888889,79.02777777777777,152.50000000000003,79.58333333333333,153.47222222222223C80.13888888888889,154.44444444444446,80.83333333333334,155.1388888888889,81.66666666666667,155.69444444444446C82.5,156.25000000000003,83.61111111111111,156.5277777777778,84.72222222222223,156.5277777777778C86.11111111111111,156.5277777777778,87.22222222222223,155.97222222222223,88.05555555555556,155.1388888888889C88.88888888888889,154.30555555555557,89.44444444444444,153.33333333333334,89.86111111111111,152.36111111111114M71.11111111111111,146.25000000000003C71.11111111111111,148.8888888888889,71.38888888888889,151.3888888888889,72.08333333333333,153.61111111111114C72.77777777777777,155.83333333333334,73.75,157.7777777777778,75,159.30555555555557C76.25,160.83333333333334,77.5,162.08333333333334,79.16666666666667,162.91666666666669C80.69444444444444,163.75000000000003,82.36111111111111,164.30555555555557,84.16666666666667,164.30555555555557C85.83333333333334,164.30555555555557,87.63888888888889,163.8888888888889,89.16666666666667,163.05555555555557C90.69444444444444,162.22222222222223,91.94444444444444,160.97222222222223,93.19444444444444,159.44444444444446C94.44444444444444,157.91666666666669,95.41666666666667,155.97222222222223,96.11111111111111,153.75000000000003C96.80555555555556,151.5277777777778,97.22222222222223,149.0277777777778,97.22222222222223,146.25000000000003C97.22222222222223,143.75000000000003,96.94444444444444,141.3888888888889,96.25,139.30555555555557C95.55555555555556,137.22222222222223,94.72222222222223,135.2777777777778,93.47222222222223,133.61111111111114C92.22222222222223,131.94444444444446,90.83333333333334,130.83333333333334,89.30555555555556,129.86111111111114C87.77777777777777,128.8888888888889,85.97222222222223,128.47222222222223,84.16666666666667,128.47222222222223C82.36111111111111,128.47222222222223,80.69444444444444,128.8888888888889,79.02777777777777,129.86111111111114C77.36111111111111,130.83333333333334,76.11111111111111,131.94444444444446,74.86111111111111,133.61111111111114C73.61111111111111,135.2777777777778,72.77777777777777,137.08333333333334,72.08333333333333,139.30555555555557C71.38888888888889,141.5277777777778,71.11111111111111,143.75000000000003,71.11111111111111,146.25000000000003");
console.log(pth.toString());
如何使用上面链接的 svg 解析器或使用 js 的任何其他方式将这些小数位减少到 n 位小数?
更新:谢谢@Ian。使用您的代码,如果有任何小数,我们如何使用以下代码进行舍入?
if (dec || dec === 0)
{
if (dec > 1) dec = 1;
else if (dec < 0) dec = 0;
}
else dec = false;
function r(num)
{
if (dec !== false) return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
else return num;
}
你可以使用一些像这样的正则表达式...我认为这将四舍五入并切断...
var newstring = string.replace(/[0-9]*'.[0-9]*/g, function(x){ return (+x).toFixed(2) });
然后,您可以在路径d属性等任何地方应用它
斯菲德尔
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 货币代码为欧元-金额的格式不应包含小数
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在select元素中显示highchart dashstyle(svg)
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 缩放Raphael/SVG容器以适应所有内容
- JavaScript-动态SVG-onload属性-未触发事件
- 设置动画时,SVG/Raphael大圆圈会变形
- 键按正则表达式以查找具有负值的小数
- 使用SVG和JavaScript创建波浪动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- D3.js生成有效的SVG,但不显示任何内容
- 如何使用此 js svg 解析器将 svg 文件或元素中的路径小数位更改为 n 位小数