Получение координат последней точки холст-контекста - PullRequest
13 голосов
/ 01 марта 2011

Я хочу создать функцию arrowTo с CanvasRenderingContext2D.prototype. Для этого мне нужно получить координаты последней точки. например,

//... 
var ctx = someCanvas.getContext('2d');

ctx.moveTo(10,40);
//the coordinates of the last point are now (10,40)

ctx.lineTo(50,50);
//and now it's (50,50)

//...

Как я могу их получить?

Ответы [ 2 ]

6 голосов
/ 01 марта 2011

Вы должны следить за ними самостоятельно.Или сделайте немыслимое и переопределите moveTo / lineTo, чтобы отслеживать последние координаты через CanvasRenderingContext2D.prototype.

3 голосов
/ 26 ноября 2018

Это свойство, которое холст где-то хранил, и оно должно быть доступно из свойства (вероятно), поскольку может быть трудно отслеживать координаты последней точки.
Например, когда вы рисуете дугу

ctx.arc(xc, yc, radius, starting_angle, ending_angle); 

У вас нет немедленной информации о координатах последней точки.
Конечно, это может быть получено в этом случае с

lastX = xc + radius*Math.cos(ending_angle);
lastY = yc + radius*Math.sin(ending_angle);   

Но раздражает необходимость включать эти вычисления, когда мы знаем, чтохолст запоминает последнюю точку.
Если после инструкции по дуге вы добавляете

ctx.lineTo(x, y);  

И это работает.Поэтому в canvas есть последняя точка, хранящаяся где-то, и я не могу понять, почему она скрыта для программиста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...