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
Path SVG:简化路径以删除曲线?_Path_Svg_Inkscape - Fatal编程技术网

Path SVG:简化路径以删除曲线?

Path SVG:简化路径以删除曲线?,path,svg,inkscape,Path,Svg,Inkscape,我有一个svg文件,其中包含带有贝塞尔曲线的复杂路径。 我需要转换这个路径数据以用于html映射区域,所以实际上我只需要坐标(但对于大型曲线,在两个端点之间有一些坐标会非常好) 我尝试了Inkscape的简化路径函数,但这些路径仍然包含曲线 是否有任何工具或公式将这些曲线转换为简单坐标 可能是另一种在其坐标中不使用曲线的Inkscape输出格式?在Inkscape中: 选择“按节点编辑路径”工具(F2) 单击您的路径以选择它 Ctrl+A以选择该路径中的所有节点 单击将新节点插入选定的线段中。重

我有一个svg文件,其中包含带有贝塞尔曲线的复杂路径。 我需要转换这个路径数据以用于html映射区域,所以实际上我只需要坐标(但对于大型曲线,在两个端点之间有一些坐标会非常好)

我尝试了Inkscape的简化路径函数,但这些路径仍然包含曲线

是否有任何工具或公式将这些曲线转换为简单坐标

可能是另一种在其坐标中不使用曲线的Inkscape输出格式?

在Inkscape中:

  • 选择“按节点编辑路径”工具(F2)
  • 单击您的路径以选择它
  • Ctrl+A以选择该路径中的所有节点
  • 单击将新节点插入选定的线段中。重复此操作以尽可能详细地表示曲线的形状
  • 然后单击“使选定线段成为直线”
  • 这些选项位于顶部工具栏上-加号图标和两个方形节点之间的直线对角线


    要实现自动化,请尝试Inkscape.Description中包含的
    展平Bezier
    扩展。

    有更多技术方法可以简化SVG路径-


    如果您只需要坐标,您不能使用脚本将它们从SVG文件中提取出来吗?这比“使选定的线段成为直线”要好得多,因为它实际上会添加节点来近似曲线。这是正确的解决方案。它解决了
    问题,但对于大型曲线,最好在问题中的两个端点之间有一些坐标。扩展位于中的
    Extensions
    修改路径
    展平Beziers…
    kscape 0.92。可以使用“生成选定线段直线”来完成此操作。但是,已接受的答案完全错过了关键步骤。我已对其进行编辑以添加此步骤:在“生成选定线段直线”之前使用“将新节点插入选定线段”
    var path = [ [250, 150], [250, 150], [25, 25], [24, 25], [10, 10] ]
    var tolerance = 10
    path = simplify(path, tolerance)
    //result:
    //[ [ 250, 150 ], [ 25, 25 ], [ 10, 10 ] ]