当 SVG 路径命令只包含一条二次贝塞尔曲线时,可以使用以下函数来获取起点、控制点和终点:
```javascript
function getQuadraticBezierCurvePoints(path) {
const regex = /M([\d.]+),([\d.]+)C([\d.]+),([\d.]+)\s([\d.]+),([\d.]+)/;
const match = path.match(regex);
if (!match) {
return null;
}
const [_, x0, y0, x1, y1, x2, y2] = match.map(parseFloat);
const p0 = { x: x0, y: y0 };
const p1 = { x: x1, y: y1 };
const p2 = { x: x2, y: y2 };
return { p0, p1, p2 };
}
```
这个函数接受一个 SVG 路径命令字符串作为参数,返回一个包含起点、控制点和终点的对象。如果路径命令不是一条二次贝塞尔曲线,则返回 `null`。
你可以像这样调用该函数:
```javascript
const path = 'M250,187.984375C250,233.9921875 350,233.9921875 350,280';
const curve = getQuadraticBezierCurvePoints(path);
console.log(curve); // { p0: { x: 250, y: 187.984375 }, p1: { x: 250, y: 233.9921875 }, p2: { x: 350, y: 280 } }
```
注意,这个函数只适用于路径命令只包含一条二次贝塞尔曲线的情况。如果你需要处理更复杂的路径命令,需要编写更复杂的函数来解析它们。