2014-05-15 87 views
6

我需要使用路徑漸變(沿路徑改變筆觸顏色),但目前無法找到使用當前JavaFX API執行此操作的方法。請注意,這與將線性漸變應用於路徑元素不同。這似乎適用於直線段,但在某些弧形配置和多個連接的路徑元素中失敗。有沒有什麼辦法可以在JavaFX中建立路徑漸變?

有人會提供任何建議,以解決這個問題的方法?

回答

0

你可以試試下面的辦法:

@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

這正是OP說,他們不找。對於曲線,將漸變映射到曲線的邊界,而不是沿着曲線。 –

相關問題