我一直在阅读有关亚像素精度的信息,但找不到办法做到这一点。
问:如何移动 BufferedImage
隔着 Canvas
在非整数速度下没有口吃?
我可以从逻辑上理解这个过程是如何发生的 - 使用抗锯齿稍微调整大小,但我无法在 Java 中重新创建它。 (我有使用 Flash 的经验,默认情况下在大多数视觉对象上都会创建这种效果。)
注意:我已经提交了 question 之前关于这个主题,但在搜索更多信息后,我仍然无法实现我所学到的。
如果不是太麻烦,一个简单的例子将不胜感激。
提前致谢。
编辑:这就是我理解可以实现的效果的方式,尽管它对我不起作用:
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.draw(new Rectangle2D.Double(x, y, width, height));
在 x 和 y 字段的 double 和相似 int 值之间没有明显的变化,当我尝试创建非常慢的移动(例如基于系统时间)时,我看到矩形除了时不时地移动一个像素之外什么都不做.
最佳答案
ButtonUITest
提供效果的并排比较。
在许多平台上,可以缩放显示以查看更多内容。在 Mac OS X 上,⌘-⌥-8 有效,/Developer/Applications/Graphics Tools/Pixie.app
也是如此.在其他支持 Java 的平台上, Zoom
是用于检查抗锯齿像素的便捷工具。
关于java - 亚像素图形运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439238/