Svg 如何将路径数据规格化为0 x 0坐标空间?
我接收到任意路径数据,这些数据有时位于上千个位置中的10个位置 如何将其规格化,使顶部和左侧的位置为0 x 0 因此,对于在1000x1000处创建的路径:Svg 如何将路径数据规格化为0 x 0坐标空间?,svg,vector,graphics,path,vector-graphics,Svg,Vector,Graphics,Path,Vector Graphics,我接收到任意路径数据,这些数据有时位于上千个位置中的10个位置 如何将其规格化,使顶部和左侧的位置为0 x 0 因此,对于在1000x1000处创建的路径: M 1000 1000 L 1000 1050 L 1050 1100 Z 在正常化之后: M 0 0 L 0 50 L 50 100 Z 示例代码: path.pathData // M 1000x1000 L 1000x1050 L 1050x1100 Z path.normalizeToPosition(0,0); path.pa
M 1000 1000 L 1000 1050 L 1050 1100 Z
在正常化之后:
M 0 0 L 0 50 L 50 100 Z
示例代码:
path.pathData // M 1000x1000 L 1000x1050 L 1050x1100 Z
path.normalizeToPosition(0,0);
path.pathData // M 0x0 L 0x50 L 50x100 Z
我已经看到了这一点,它看起来很接近我想要的,但不同的是我希望最上面和最左边的位置是0x0
换句话说,我希望viewBox始终以“0 0”开始,并且无论当前路径数据是什么,向量路径顶部和左侧都完全位于viewBox区域内
另一个例子。如果路径数据为:
M -1000 -1000 L -1000 -1050 L -1050 -1100 Z
函数会将其修改为
M 0 0 L 0 50 L 50 100 Z
您可以使用SVG DOM路径API。不过,你需要一点时间
var path=document.getElementById(“路径”);
var segments=path.pathSegList;
var len=段数.numberOfItems;
var newPath=“”
对于(var i=0;这很有帮助,但它缺少移动向量的部分,因此它位于视图框内。我更新了答案,使其更清晰。我已更改了它。