实际上,我的工作是基于在屏幕上显示图表,并且在放大/缩小时,图表中的信息会或多/少(就像谷歌地图一样)。
任何人都可以指导2D图形API,可以让我轻松地在Java中放大/缩小我的图形吗?
我已经将Graphics2D
与AffineTransform
一起使用,但是使用这些东西在图表中显示更多/更少的细节在某种程度上很困难。我实际上的意思是Java Graphics API无助于显示更多/更少的细节,定位它们,更改它们的大小等。我必须为所有内容编写代码,并且设计中的每个更改都需要花费太多精力来修改我的代码。
您应该使用 MVC 模式,其中表示具有所有详细信息的图表的图类是您的模型,显示的图像是您的视图,缩放按钮/滚轮是您的控制器。
以下是一些快速的想法:
你可以有一些方法,始终使用相同的"内部"大小构建渲染图像,根据所需的缩放或多或少的细节,然后使用AffineTransform
放大它(据我所知,这是缩放图像的最简单方法)。每次更改缩放时,都会通过新的缩放调用此方法并重建映像。
如果这不可行(例如,因为附加信息的坐标不容易在小图像上计算),您可以尝试相反的方法:首先构建基本图像,放大它,然后使用该方法增量添加新信息到该图像。您甚至可以缓存从较小的缩放值构建的图像,以加快该过程。