Path Javafx路径笔划宽度线条到

Path Javafx路径笔划宽度线条到,path,width,javafx,opacity,stroke,Path,Width,Javafx,Opacity,Stroke,我刚刚用JavaFX的Path做了一些测试,在使用LineTo时发现了一个bug: 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 buildBorde

我刚刚用JavaFX的Path做了一些测试,在使用LineTo时发现了一个bug:

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;
    }
}
当我这么做的时候,没关系。但是当我希望strokewidth更小(0.2或0.1)时,左边框不可见,其他边框可见。。有人知道为什么吗?
谢谢。

原因可能与此相同

因此,当您的笔划宽度为奇数时,您可以选择以下清洁线条:

使用StrokeType.INSIDE或StrokeType.OUTSIDE笔划样式。 将形状的坐标偏移0.5个像素,以便笔划在线条上对齐,而不是线条之间的裂缝。 只需使用下一个偶数作为笔划宽度,例如1=>2,3=>4,等等