javascript - 使用javascript从任意SVG路径中提取x,y坐标

标签 javascript regex svg

我想用变量替换 SVG 路径中的坐标。 (使用 JavaScript)。虽然 svg 路径可以有多种类型,但在具体示例中获得一些支持会很有帮助:

d = "M27,0C27,21,4,34,-13,23C22,18,-27,9,-27,0";

我想把这个SVG路径转化成

var x = [];
var x[0] = 27; x[1] = ...

d = "M + x[0] + "," + y[0] 
    + "C" 
    + x[0] + "," + y[0] + ","
    + x[1] + "," + y[1] + ","
    + x[2] + "," + y[2] + ","
    + "C" 
    + x[3] + "," + y[3] + ","
    + x[4] + "," + y[4] + ","
    + x[5] + "," + y[5];

所以我的问题是找到合适的 javascript RegExp 来提取所有变量,并使用它生成给定的 SVG 路径。

我实际上做的是创建一个表示给定 svg 的 Javascript 对象,我希望能够单独设置坐标。

非常感谢任何帮助

谢谢,马丁

更新: 在已接受的答案旁边,精彩的 raphael.js 库中还有一个非常方便的方法来分析 SVG 路径

http://raphaeljs.com/reference.html#Raphael.parsePathString

最佳答案

只需使用 SVG DOM 来解析它 there are more details in this question/answer但基本上你会做

var segments = path.pathSegList;

这为您提供了一系列您可以读取或写入的段和值,例如

segments.getItem(0).y = -10;

关于javascript - 使用javascript从任意SVG路径中提取x,y坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19832534/

相关文章:

javascript - 从 Webpack 加载器中获取原始文件路径

javascript - 类型错误 : Attempting to change value of a readonly property. 定义属性

css 缩放 SVG 移动元素

javascript - 想要拖动示例图像而不是真实元素

javascript - jison:如何在jison文件中添加 "require"?

javascript - Backbonejs 与 Mongolab

regex - Notepad++ 删除除匹配正则表达式之外的所有文本

r - 使用 dplyr contains() 根据多个字符串选择列

java - 将允许和不允许的 URL 规则附加到 java 列表中

javascript - 使用 jQuery SVG 更改(或动画)路径