现在我正在获取我的canvas节点的GraphicsContext并尝试执行 gc.scale(2, 2); 在我的canvas上有几十种可用的方法。所以我知道肯定有一些可以进行缩放的方法。然而,我的尝试并没有产生明显的“增长”或“缩放”。是否需要调用某些方法才能使其应用或重新绘制?
我认为gc.scale(2,2)会将你在画布上绘制的下一件事物按比例缩放两倍,而不是已经绘制的现有内容。如果要缩放画布,可以在画布上设置变换,而不是在图形上下文中设置。canvas.setScaleX(2); canvas.setScaleY(2); 如果您希望缩放的画布在布局管理器的布局计算中得到反映,可以将其包装在一个Group中;如果您想在缩放的画布上实现类似缩放的效果,其中部分画布被裁剪,则可以将画布放置在ScrollPane中并为其定义视口,或者在画布节点上设置剪辑。更新以讨论像素化问题为了避免放大时出现像素化问题,我认为您需要记录到目前为止绘制的所有图形命令,然后当您想要更改缩放因子时,清除画布,将新比例应用于画布,然后重新播放所有图形命令。也许可以使用类似SVG的格式来记录图形命令。或者您可以直接使用场景图并在其中进行绘制,这样也不会出现像素化问题。我认为这里需要注意的重要事项是,画布应该是一种即时模式的快速绘制工具,而不是像场景图那样的保留模式绘图服务。
反引号
来格式化评论中的代码。 - jewelsea