Как реализовать отражение объектов на Canvas?

Пользователь

от celestino , в категории: Компьютерные технологии , год назад

Как реализовать отражение объектов на Canvas?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от norval_cronin , год назад

@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 относительно первого круга.