Без кода трудно понять, что вы хотите или что вы делаете неправильно. Но заполнение области между кривыми просто требует вызова fill
, как только вы определили путь.
Пример
const ctx = canvas.getContext("2d");
const unit = (a, b, u) => (b - a) * u + a;
const p1 = {x:20, y:420}, p2 = {x:480, y:20}, p3 = {x:20, y:480};
ctx.beginPath()
ctx.moveTo(p1.x, p1.y);
ctx.bezierCurveTo(
unit(p1.x, p2.x, 0.5), unit(p1.y, p2.y, 0.0),
unit(p1.x, p2.x, 0.5), unit(p1.y, p2.y, 1.0),
p2.x, p2.y
)
ctx.bezierCurveTo(
unit(p2.x, p3.x, 0.5), unit(p2.y, p3.y, 0.0),
unit(p2.x, p3.x, 0.5), unit(p2.y, p3.y, 1.0),
p3.x, p3.y
)
ctx.lineWidth = 3;
ctx.lineJoin = "round";
ctx.strokeStyle = "#F80";
ctx.fillStyle = "#08F";
ctx.fill();
ctx.stroke();
<canvas id="canvas" width="500" height="500"></canvas>