前不久实现过类似的效果,代码是公司的不能泄露,只能简单说下实现: 采用 ECharts 底层的图像渲染库 zrender.js 实现 canvas 图像绘制、事件监听,图中的圆点和曲线分别通过Circle 和 BezierCurve 对象实现; 使用一连串圆点的位置来定义曲线,监听圆点的拖拽事件,同步修改曲线的数据。 当然,也许有更好的库、更好的实现,只是我知道得少并且热衷于造轮子罢了。
贝塞尔曲线
bezierMaker.js