我刚刚使用Path of JavaFX进行了一些测试,当我使用LineTo时发现了一个错误:
Path border = GraphUtil.buildBorder(w, h, ARC_BORDER);
border.setStroke(Color.BLACK);
border.setStrokeWidth(0.3);
border.setOpacity(0.8);
用我的实用方法:
public class GraphUtil {
public static Path buildBorder(double w, double h, double arcBorder) {
//FIXME apply arcborder
Path border = new Path();
MoveTo mTo = new MoveTo();
mTo.setX(0);
mTo.setY(0);
LineTo lTop = new LineTo();
lTop.setX(w);
lTop.setY(0);
LineTo lRight = new LineTo();
lRight.setX(w);
lRight.setY(h);
LineTo lBottom = new LineTo();
lBottom.setX(0);
lBottom.setY(h);
LineTo lLeft = new LineTo();
lLeft.setX(0);
lLeft.setY(0);
border.getElements().addAll(mTo, lTop, lRight, lBottom, lLeft);
return border;
}
}
当我这样做时,没关系。但是当我希望笔画宽度更小(0.2或0.1)时,左边框是不可见的,其他边框是可见的。有人知道为什么吗? 感谢。
答案 0 :(得分:0)
也许与此相同的原因?
因此,当您具有奇数笔划宽度时,您选择干净线条是:
使用StrokeType.INSIDE或StrokeType.OUTSIDE描边样式。 将形状的坐标偏移0.5像素,使得笔划在线上而不是线之间的裂缝排列。 只需使用下一个偶数作为笔划宽度,例如1 => 2,3 => 4,等等。
JavaFX graphics "blurred" or anti-aliased? (No effects used)