2014-05-15 9 views
6

Potrzebuję użyć gradientów ścieżek (zmieniać kolor obrysu wzdłuż ścieżki), ale obecnie nie można znaleźć sposobu, aby to zrobić przy użyciu bieżącego interfejsu API języka JavaFX. Zauważ, że jest to coś innego niż zastosowanie gradientu liniowego do elementu ścieżki. Może się wydawać, że działa to w przypadku odcinków prostych, ale kończy się niepowodzeniem w niektórych konfiguracjach łuku i wielu połączonych elementach ścieżki.Czy istnieje sposób na zbudowanie gradientu ścieżki w JavaFX?

Czy ktoś zaproponuje jakieś sugestie dotyczące podejścia do tego problemu?

Odpowiedz

0

Można spróbować następujące podejście:

@Override 
public void start(Stage primaryStage) { 
    Group root = new Group(); 

    // CREATE CANVAS 
    final Canvas canvas = new Canvas(300, 250); 
    // GET GRAPHICS CONTEXT 
    final GraphicsContext gc = canvas.getGraphicsContext2D(); 


    // DRAW THE SHAPE (LINE) 
    gc.beginPath(); 
    gc.moveTo(50, 50);  //Begin 
    gc.lineTo(150, 200); //End 
    gc.closePath(); 

    // CREATE THE LINEAR EFFECT 
    LinearGradient lg = new LinearGradient(0, 0, 1, 1, true, 
      CycleMethod.REFLECT, new Stop(0.0, Color.RED), 
           new Stop(0.5, Color.GREEN), 
           new Stop(1.0, Color.BLUE)); 
    // SET & STROKE WITH LINEAR 
    gc.setLineWidth(20); 
    gc.setStroke(lg); 
    gc.stroke(); 


    //ADD CANVAS NODE TO ROOT 
    root.getChildren().add(canvas); 
    primaryStage.setScene(new Scene(root)); 
    primaryStage.show(); 
} 
+0

To jest dokładnie to, co PO powiedział, że nie szukali. W przypadku krzywej gradient jest mapowany do granic krzywej, a nie wzdłuż krzywej. –

Powiązane problemy