При применении преобразования с холстом полученный текст также (очевидно) преобразуется. Есть ли способ предотвратить определенные преобразования, такие как отражение, влияющих на текст?
Например, я устанавливаю глобальную матрицу преобразований, поэтому ось Y направлена вверх, ось X вправо, а точка (0, 0)
находится в центре экрана (что вы ожидаете от математической координаты система).
Однако это также переводит текст в обратном порядке.
const size = 200;
const canvas = document.getElementsByTagName('canvas')[0]
canvas.width = canvas.height = size;
const ctx = canvas.getContext('2d');
ctx.setTransform(1, 0, 0, -1, size / 2, size / 2);
const triangle = [
{x: -70, y: -70, label: 'A'},
{x: 70, y: -70, label: 'B'},
{x: 0, y: 70, label: 'C'},
];
// draw lines
ctx.beginPath();
ctx.strokeStyle = 'black';
ctx.moveTo(triangle[2].x, triangle[2].y);
triangle.forEach(v => ctx.lineTo(v.x, v.y));
ctx.stroke();
ctx.closePath();
// draw labels
ctx.textAlign = 'center';
ctx.font = '24px Arial';
triangle.forEach(v => ctx.fillText(v.label, v.x, v.y - 8));
<canvas></canvas>