Построение точки с масштабным коэффициентом - PullRequest
0 голосов
/ 17 октября 2011

Я централизованно масштабирую прямоугольник на графике со следующим:

var x1 = (this.width - (this.image.width * this.scale)) / 2 + this.origin.x;
var y1 = (this.height - (this.image.height * this.scale)) / 2 + this.origin.y;
var x2 = (this.image.width * this.scale);
var y2 = (this.image.height * this.scale);
context.drawImage(this.image, x1, y1, x2, y2);

Теперь мне нужно иметь возможность масштабировать одну точку на этом графике.Точка имеет начало координат x / y, точку x / y и масштабный коэффициент (this.scale) на текущем уровне.Как я могу перевести этот масштабный коэффициент в точку на поле с заданной шкалой?

1 Ответ

0 голосов
/ 17 октября 2011

Я думаю, что ваш вопрос - точка дала координаты x,y, и вам нужно придумать новые координаты x и y a, b, чтобы она находилась в том же месте в масштабированной ячейке, как и ввесь график.

Точка находится на x единицах по горизонтали от начала координат, и вам нужно, чтобы она составляла x/scale единиц от нового источника.

Итак, a = x/scale + x1 (поскольку новый источник имеет координаты x1, y1)

, аналогично, точка составляет y единиц по вертикали от начала координат, и вам нужно, чтобы она была y/scale единиц от нового источника.

и b = y/scale + y1

Я думаю, что я мог неправильно понять, где находится новое происхождение (левый угол поля, но если у меня есть, то просто замените x1 и y1 на координаты новогопроисхождения)

...