#javascript #html5-canvas #html2canvas
Вопрос:
У меня есть два полуэллипса, и я пытаюсь заполнить пространство между ними. По какой-то причине «заливка» «скручивается» посередине:
const canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
canvas.width = canvas.height = 300;
ctx.ellipse(150, 0, 150, 90, 0, 0, Math.PI);
ctx.ellipse(150, 200, 150, 90, 0, 0, Math.PI);
ctx.fillStyle = "lightgreen";
ctx.fill();
ctx.stroke();
<canvas id="canvas"></canvas>
Любые идеи, как наполнить его так, чтобы он был похож на цилиндр (без дальней стороны сверху)
Ответ №1:
Я думаю, все, что ему нужно, это повернуть один из эллипсов и нарисовать его в обратном порядке:
const canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
canvas.width = canvas.height = 300;
ctx.ellipse(150, 0, 150, 90, 0, 0, Math.PI);
ctx.ellipse(150, 200, 150, 90, Math.PI, 0, Math.PI, true); //changed
ctx.fillStyle = "lightgreen";
ctx.fill();
ctx.stroke();
<canvas id="canvas"></canvas>