2013-11-15 5 views
0

Я просто сделал несколько тестов с Пути JavaFX, и я заметил ошибку, когда я работаю с LineTo: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; 
    } 
} 

When Я делаю это, все в порядке. Но когда я хочу, чтобы ширина строчки была меньше (0,2 или 0,1), левая граница невидима, другие видны. Кто-нибудь знает, почему? Спасибо.

ответ

0

Возможно, такая же причина, как это?

Так что ваши варианты для чистых линий, когда у вас есть нечетная ширина обводки являются:

Используйте стиль хода StrokeType.INSIDE или StrokeType.OUTSIDE. Смещать координаты фигур на 0,5 пикселя, чтобы штрихи выстраивались на линии, а не трещины между линиями. Просто используйте следующее четное число с шириной хода, например. 1 => 2, 3 => 4 и т. Д.

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

 Смежные вопросы

  • Нет связанных вопросов^_^