我正在尝试创建一个 html 画布,用户可以在其中定义起点和终点,在起点和终点之间我想画一条波浪线,我通过绘制 bezierCurveTo 来做到这一点。
一个样品:
我用来绘制它的代码如下:
var wave = new Kinetic.Shape({
drawFunc: function (canvas) {
var ctx = canvas.getContext();
ctx.beginPath();
ctx.moveTo(50, 50);
var waveCount = 0;
var controlPoint1X = 55;
var controlPoint2X = 60;
var endPointX = 65;
while(waveCount < 10) {
ctx.bezierCurveTo(controlPoint1X, 35, controlPoint2X, 65, endPointX, 50);
controlPoint1X += 20;
controlPoint2X += 20;
endPointX += 20;
waveCount++;
}
ctx.stroke(_this);
},
stroke: '#000000',
strokeWidth: 2
});
只要只有 x 或 y 坐标发生变化,我就可以完成这项工作。现在我希望能够创建一个如上所示的波浪线,但具有不同的 x,y 坐标。例如起点 x: 50 y: 50 和终点 x: 100 y: 100。我知道我必须计算控制点,但我不知道我必须使用什么公式。有人可以帮我吗?