Javafx路径笔划宽度Lineto

时间:2013-11-15 22:02:00

标签: path width javafx opacity stroke

我刚刚使用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)时,左边框是不可见的,其他边框是可见的。有人知道为什么吗? 感谢。

1 个答案:

答案 0 :(得分:0)

也许与此相同的原因?

因此,当您具有奇数笔划宽度时,您选择干净线条是:

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

JavaFX graphics "blurred" or anti-aliased? (No effects used)