Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX,为什么锚定窗格中的像素值是双倍的?如果你把10.5放进去,会发生什么?_Java_Javafx_Anchor_Pane - Fatal编程技术网

JavaFX,为什么锚定窗格中的像素值是双倍的?如果你把10.5放进去,会发生什么?

JavaFX,为什么锚定窗格中的像素值是双倍的?如果你把10.5放进去,会发生什么?,java,javafx,anchor,pane,Java,Javafx,Anchor,Pane,最近我开始使用javaFX锚定窗格,我看到距离值是一个双精度值。现在我的问题是为什么他们选择了双精度而不是整数?我的意思是像素数,据我所知,你不能将内容移动半个像素。举个小例子: AnchorPane.setTopAnchor(something, 10.5); 在本例中,它将顶部定位设置为10.5像素。那么,他们为什么要把它改成双倍的呢?当我把10.5改成10.0时,我到底要做些什么呢?我不知道真正的原因是什么,但正如文档中所说的那样 AnchorPane允许将子节点的边定位到与定位窗格边的

最近我开始使用javaFX锚定窗格,我看到距离值是一个双精度值。现在我的问题是为什么他们选择了双精度而不是整数?我的意思是像素数,据我所知,你不能将内容移动半个像素。举个小例子:

AnchorPane.setTopAnchor(something, 10.5);

在本例中,它将顶部定位设置为10.5像素。那么,他们为什么要把它改成双倍的呢?当我把10.5改成10.0时,我到底要做些什么呢?

我不知道真正的原因是什么,但正如文档中所说的那样

AnchorPane允许将子节点的边定位到与定位窗格边的偏移处。如果定位窗格设置了边框和/或填充,则将从这些插图的内边缘测量偏移量

因此,它似乎会计算节点子节点和锚定窗格边缘之间的差异,以确定放置节点子节点的位置,距离计算始终采用浮点/双精度格式


但在代码中,它们似乎都做了相同的事情,JavaFX中的布局坐标都是双倍的。根据子对象的属性,子对象的最终位置实际上可能被舍入为整数值,请参见。AnchorPane似乎不这样做,但只是对子对象的位置/宽度使用非整数值

此外,可能存在将节点与像素对齐的变换,例如按因子2缩放

通常,不可能在所有情况下始终将节点像素与显示像素完全对齐。只考虑旋转45°。< /P>
如果在应用了所有变换后,节点的一部分没有完全覆盖像素,则结果是绘制的节点颜色不透明度取决于节点覆盖的像素部分,例如,位于10.5的矩形边缘会导致节点的颜色以半不透明的方式绘制在像素10上。

一个可缩放的几何体,实际上更真实。对角线穿过部分像素,与字母图示符相同。然后旋转和缩放。字体大小首先是非整数高度,通过部分像素偏移可以获得更好的渲染效果。然后是亚像素