JavaScript « Возможно ли поменять точку отсчета координат в canvas?

Переместить ее из верхнего левого угла в нижний левый?

1 ответов


Возможно с помощью трансформаций.


ctx.translate(0, 300); // предполагаем, что 300 - высота canvas
ctx.scale(1, -1);

// начало координат перемещено в нижний левый угол

ctx.fillStyle = 'red';
ctx.fillRect(0, 0, 100, 100);
 

Пример здесь.
Подробнее о трансформациях здесь (англ.).

Нет, нельзя, координаты (x=0, y=0) начинаются от верхнего левого угла браузера.

Можно сэмулировать — каждый раз от высоты canvas'а (canvas.height, допустим = 100 пикселов) отнимайте значение координаты y.

Тобишь, скажем, хотите поставить точку (0, 15) в координаты (x, y), но с учетом, что нулевая точка не вверху слева, а внизу слева, то получается, что точку нужно ставить в (0, 100 - 15) = (0, 85) и так далее.

Я так график курсов валют рисовал.