UPDATE: Я думаю, что понял. Масштабный умножитель также применил к переводу, который я пытался сделать. У меня было подозрение, что это так, но не мог точно понять, как это повлияло.шкала() и форма() в обработке
Любое знакомое с spinoff Java под названием Обработка? Я пытаюсь сделать что-то простое, масштабировать форму и поместить ее в центр эскиза. Это мой код в двух словах:
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() и даже пропускать масштаб() в целом и используя ширину и высоту в форме(). Это похоже на то, что Processing пытается сбить меня с толку. Любая помощь приветствуется.
Я имею IDE обработки, и если вы могли бы разместить весь свой код, было бы легче для меня, чтобы попытаться исправить и запустить , – WuHoUnited
Мне нужно было бы отправить вам весь zip-файл, так как я использую библиотеку плюс SVG на карте, а также данные, которые я пытаюсь отобразить на карте. – vince88