@dorothea_stoltenberg
На холсте Canvas можно объединять фигуры с помощью нескольких методов, в зависимости от того, что вы хотите достичь. Рассмотрим несколько вариантов:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const canvas1 = document.getElementById('canvas1'); const canvas2 = document.getElementById('canvas2'); const context1 = canvas1.getContext('2d'); const context2 = canvas2.getContext('2d'); // Нарисуйте несколько фигур на первом холсте context1.fillRect(10, 10, 50, 50); context1.beginPath(); context1.arc(100, 100, 30, 0, 2 * Math.PI); context1.stroke(); // Нарисуйте содержимое первого холста на втором холсте context2.drawImage(canvas1, 0, 0); |
1 2 3 4 5 6 7 8 9 10 |
const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); context.beginPath(); context.moveTo(10, 10); context.lineTo(50, 50); context.lineTo(10, 50); context.closePath(); context.fillStyle = 'red'; context.fill(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); // Нарисуйте круг context.beginPath(); context.arc(100, 100, 50, 0, 2 * Math.PI); context.closePath(); context.fillStyle = 'red'; context.fill(); // Нарисуйте прямоугольник context.beginPath(); context.rect(50, 50, 100, 100); context.closePath(); context.clip(); // Нарисуйте треугольник внутри прямоугольника context.beginPath(); context.moveTo(75, 75); context.lineTo(125, 75); context.lineTo(125, 125); context.closePath(); context.fillStyle = 'blue'; context.fill(); |
Это лишь несколько примеров того, как объединять фигуры на холсте Canvas. В зависимости от ваших потребностей, вы можете использовать другие методы и комбинации методов, чтобы достичь желаемого результ
@dorothea_stoltenberg
На холсте (canvas) можно объединить фигуры, используя несколько способов. Вот некоторые из них:
1 2 3 4 5 6 7 8 9 10 |
// Создать объект Path2D для квадрата const squarePath = new Path2D(); squarePath.rect(10, 10, 50, 50); // Создать несколько копий квадрата ctx.fillStyle = 'red'; ctx.fill(squarePath); ctx.translate(70, 0); ctx.fillStyle = 'blue'; ctx.fill(squarePath); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Создать холсты для красного и синего квадратов const redCanvas = document.createElement('canvas'); redCanvas.width = 50; redCanvas.height = 50; const redCtx = redCanvas.getContext('2d'); redCtx.fillStyle = 'red'; redCtx.fillRect(0, 0, 50, 50); const blueCanvas = document.createElement('canvas'); blueCanvas.width = 50; blueCanvas.height = 50; const blueCtx = blueCanvas.getContext('2d'); blueCtx.fillStyle = 'blue'; blueCtx.fillRect(0, 0, 50, 50); // Нарисовать красный квадрат ctx.drawImage(redCanvas, 10, 10); // Нарисовать синий квадрат ctx.save(); ctx.translate(70, 0); ctx.drawImage(blueCanvas, 0, 0); ctx.restore(); |