我有一張正在VisualizationView中的屏幕上繪製的地圖。我可以在此地圖上放大和縮小,具體取決於使用觸摸功能將焦點放在此視圖中的哪個位置。放大或縮小時與圖像相對的對象
我也在放大和在這張地圖上繪圖之間切換。當我在地圖上繪製箭頭並切換回放大時,我希望我在地圖上繪製的箭頭保持與放大和縮小的地圖相同的地點。這意味着這個箭頭的x和y位置必須調整。
我有所有需要的變量我只是不知道如何解決這個問題,因爲它的數學相關。
有人可以向我解釋我該如何解決這個數學問題。我嘗試在網上尋找,但我找不到一個好的解釋。此外平板電腦上的地圖分辨率始終是576 X 576
public void onZoom(final double focusX, final double focusY,
final double factor) {
//pseudocode
Triangle.x = ..
Triangle.y = ..
Triangle.repaint();
//peusocode
}
用於變焦的代碼是從圖書館直以下。
public void zoom(double focusX, double focusY, double factor) {
synchronized (mutex) {
Transform focus = Transform.translation(toMetricCoordinates((int) focusX, (int) focusY));
double zoom = RosMath.clamp(getZoom() * factor, MINIMUM_ZOOM, MAXIMUM_ZOOM)/getZoom();
transform = transform.multiply(focus).scale(zoom).multiply(focus.invert());
}
}
我希望有人能解釋背後解決這個數學。