我正从摇摆转向javafx.我想知道为什么GraphicsContext使用带有双重参数的方法.例如fillRect(double x,double y,double w,double h)与swing不同,具有方法drawRect(int x,int y,int width,int height).
我应该将所有计算都加倍吗?
解决方法:
从Graphics继承的drawRect中,后者使用int来指定坐标&尺寸.
另一方面,Graphics2D对象能够处理“位于整个像素之间”的图形值.为了进行补偿,通常将在必须处理像素分数的部分渲染区域渲染抖动的像素(介于图形和BG颜色之间).
Should I do all my calculations in double?
是!正如您可能希望从Graphics方法中看到的那样,将呈现完全等于整数的双精度值-使用清晰的线条.但是,如果形状的边界落在整个像素之间,则颜色会抖动.