ОБНОВЛЕНИЕ: Кажется, я понял это.ScaleMultiplier также применяется к переводу, который я пытался сделать.У меня было подозрение, что это был случай, но я не мог точно выяснить, как это повлияло.
Кто-нибудь знаком с побочным продуктом Java под названием Processing?Я пытаюсь сделать что-то простое, масштабировать фигуру и поместить ее в центр эскиза.Вот мой код в двух словах:
pushMatrix();
float scaleX, scaleY, scaleMultiplier, resetX, resetY, transX, transY;
scaleX = 500 / (float)clickState.bounds.getWidth();
scaleY = 500 / (float)clickState.bounds.getHeight();
scaleMultiplier = min(scaleX,scaleY);
resetX = -(float)clickState.bounds.getX();
resetY = -(float)clickState.bounds.getY();
transX = resetX + ((800 - ((float)clickState.bounds.getWidth() * scaleMultiplier))/2);
transY = resetY + ((550 - ((float)clickState.bounds.getHeight() * scaleMultiplier))/2);
scale(scaleMultiplier);
shape(clickState.pshape, transX, transY);
popMatrix();
То, что я пытаюсь сделать, это масштабировать состояние на карте США.clickState - это состояние, на которое нажал пользователь.clickState.bounds - это прямоугольник, который окружает форму состояния.getX () и getY () возвращают координаты x и y верхнего левого угла указанного поля.Я хочу масштабировать состояние так, чтобы оно не превышало 500x500 пикселей.После этого я хочу перевести его так, чтобы он находился в середине эскиза, а это 800x550.
Вот где я сталкиваюсь с неприятностями: когда я делаю
shape(clickState.pshape, resetX, resetY);
Он рисует состояние в верхнем левом углу эскиза.Это именно то, что он должен делать.Затем я хочу добавить количество пикселей, которое потребуется для центрирования фигуры, для чего нужны transX и transY.Однако, когда я использую transX и transY, форма почти полностью отрисовывается за холстом, в зависимости от того, где находится состояние (даже если его перемещают только на 50 пикселей вправо от 0,0).Это не имеет никакого смысла для меня вообще.Я пробовал всевозможные комбинации translate () и даже пропускал scale () в целом, используя ширину и высоту в форме ().Как будто процессинг пытается меня расстроить нарочно.Любая помощь приветствуется.