当使用画布进行转换时,生成的文本也会被转换。是否有一种方法可以防止某些转换(例如反射)影响文本?
例如,我设置了全局转换矩阵,使Y轴指向上方,X轴向右,而
例如,我设置了全局转换矩阵,使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>
除手动重置转换矩阵外,是否有一种“智能”方式获取“正确”定向的文本?