Java 爪哇语;“缩放”;帆布?

Java 爪哇语;“缩放”;帆布?,java,zooming,java-canvas,Java,Zooming,Java Canvas,我有一个java.awt.canvas对象,我用Graphics2D(我从bufferStrategy中获得)绘制东西,我想“放大”和“缩小” 因此,如果我放大(按1的因子放大),使我从(0,0)到(10,10)绘制的线实际上是从(0,0)到(20,20)绘制的 这是可能的,还是我必须自己实现这一点?看看图形2D: 您可以对图形应用适当的变换,以实现许多变换、旋转、缩放(也称为缩放)和平移。最简单的缩放方式可能是 graphics2d.scale(2.0, 2.0); // draw every

我有一个java.awt.canvas对象,我用Graphics2D(我从bufferStrategy中获得)绘制东西,我想“放大”和“缩小”

因此,如果我放大(按1的因子放大),使我从(0,0)到(10,10)绘制的线实际上是从(0,0)到(20,20)绘制的


这是可能的,还是我必须自己实现这一点?

看看图形2D:

您可以对图形应用适当的变换,以实现许多变换、旋转、缩放(也称为缩放)和平移。最简单的缩放方式可能是

graphics2d.scale(2.0, 2.0); // draw everything twice the original size

看起来我使用的是Graphics类,而不是Graphics2D。我在使用画布时,如何获得Graphics2D对象?我想出来了!当我调用
bufferStrategy.getDrawGraphics()
时,我不得不进行类型转换。我注意到当我缩放到2时,FPS从6000fps下降到3000fps。这正常吗?:\顺便说一句,这是一个游戏。@petterthow很可能根据应用于图形的转换和渲染提示,性能会变化十到一百倍。图形实现可能在某些情况下能够绘制硬件加速的东西,缩放输出可能会干扰将其切换到软件渲染。这取决于很多因素,所以很难说。但我不会担心速度减半。我已经为一个游戏编写了一个原型,它只使用基本的被动渲染和图像分幅,运行速度为60fps(在2003年的硬件上)。(没有足够的空间)在出现问题时担心性能,而不是在开发基础时。如果你能坚持基本的2D渲染,它应该足够快,如果你需要华丽的3D效果考虑切换到基于OpenGL的渲染(有预制的2D游戏引擎,使用OpenGL进行渲染,但我没有经验,这些项目中哪一个是好用的)。