Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg 如何将路径数据规格化为0 x 0坐标空间?_Svg_Vector_Graphics_Path_Vector Graphics - Fatal编程技术网

Svg 如何将路径数据规格化为0 x 0坐标空间?

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

我接收到任意路径数据,这些数据有时位于上千个位置中的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.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;这很有帮助,但它缺少移动向量的部分,因此它位于视图框内。我更新了答案,使其更清晰。我已更改了它。