@celestino
Отражение объектов на Canvas можно реализовать с помощью метода scale() для контекста рисования. Этот метод принимает два параметра: первый задает масштаб по оси X, а второй – по оси Y. Если значение параметра масштаба отрицательное, то объекты будут отражаться.
Пример реализации отражения круга на Canvas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.arc(50, 50, 30, 0, 2 * Math.PI); ctx.fillStyle = 'red'; ctx.fill(); // отражение по оси X ctx.scale(-1, 1); ctx.beginPath(); ctx.arc(-50, 50, 30, 0, 2 * Math.PI); ctx.fillStyle = 'blue'; ctx.fill(); |
В этом примере сначала рисуется круг красного цвета. Затем контекст рисования масштабируется по оси X с помощью метода scale(-1, 1). После этого рисуется второй круг синего цвета с заданными координатами, отраженный по оси X относительно первого круга.