JavaFX canvas: Atrybut obwiedni 'line join’
Atrybut: line join
Typ: StrokeLineJoin
Wartość domyślna: StrokeLineJoin.MITER
Getter: StrokeLineJoin
getLineJoin()
Setter: void setLineJoin(StrokeLineJin)
Save/restore: true
Opis: Kształt złączenia linii lub fragmentów obwiedni.
Istnieją trzy kształty złączenia:
StrokeLineCap.MITER
– łączy końce zewnętrzne rogów obwiedni przedłużając je aż się spotkająStrokeLineCap.BEVEL
– łączy końce zewnętrzne rogów obwiedni prostym odcinkiemStrokeLineCap.ROUND
– łączy końce zewnętrzne rogów obwiedni zaokrąglonym łukiem o promieniu połowy szerokości linii
Złączenia linii 'line join’
Klasa Listing25_44
Ściągnij klasę Listing25_44
package rozdzial25c; import javafx.application.Application; import javafx.application.Platform; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import javafx.scene.shape.StrokeLineCap; import javafx.scene.shape.StrokeLineJoin; import javafx.stage.Stage; public class Listing25_44 extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { try { Group root = new Group(); Canvas cv = new Canvas(550, 600); GraphicsContext gc = cv.getGraphicsContext2D(); // gc.fillText("MITER", 100, 20); gc.fillText("ROUND", 250, 20); gc.fillText("BEVEL", 400, 20); gc.fillText("BUTT", 500, 100); gc.fillText("SQUARE", 500, 300); gc.fillText("ROUND", 500, 500); // gc.setStroke(Color.BLUE); gc.setLineWidth(15); //- gc.beginPath(); gc.moveTo(50, 150); gc.lineTo(150, 150); gc.lineTo(150, 50); gc.setLineCap(StrokeLineCap.BUTT); gc.setLineJoin(StrokeLineJoin.MITER); gc.stroke(); //- gc.beginPath(); gc.moveTo(200, 150); gc.lineTo(300, 150); gc.lineTo(300, 50); gc.setLineCap(StrokeLineCap.BUTT); gc.setLineJoin(StrokeLineJoin.ROUND); gc.stroke(); //- gc.beginPath(); gc.moveTo(350, 150); gc.lineTo(450, 150); gc.lineTo(450, 50); gc.setLineCap(StrokeLineCap.BUTT); gc.setLineJoin(StrokeLineJoin.BEVEL); gc.stroke(); //- gc.beginPath(); gc.moveTo(50, 350); gc.lineTo(150, 350); gc.lineTo(150, 250); gc.setLineCap(StrokeLineCap.SQUARE); gc.setLineJoin(StrokeLineJoin.MITER); gc.stroke(); //- gc.beginPath(); gc.moveTo(200, 350); gc.lineTo(300, 350); gc.lineTo(300, 250); gc.setLineCap(StrokeLineCap.SQUARE); gc.setLineJoin(StrokeLineJoin.ROUND); gc.stroke(); //- gc.beginPath(); gc.moveTo(350, 350); gc.lineTo(450, 350); gc.lineTo(450, 250); gc.setLineCap(StrokeLineCap.SQUARE); gc.setLineJoin(StrokeLineJoin.BEVEL); gc.stroke(); //- gc.beginPath(); gc.moveTo(50, 550); gc.lineTo(150, 550); gc.lineTo(150, 450); gc.setLineCap(StrokeLineCap.ROUND); gc.setLineJoin(StrokeLineJoin.MITER); gc.stroke(); //- gc.beginPath(); gc.moveTo(200, 550); gc.lineTo(300, 550); gc.lineTo(300, 450); gc.setLineCap(StrokeLineCap.ROUND); gc.setLineJoin(StrokeLineJoin.ROUND); gc.stroke(); //- gc.beginPath(); gc.moveTo(350, 550); gc.lineTo(450, 550); gc.lineTo(450, 450); gc.setLineCap(StrokeLineCap.ROUND); gc.setLineJoin(StrokeLineJoin.BEVEL); gc.stroke(); //- StrokeLineJoin slj = gc.getLineJoin(); System.out.println(slj); //- root.getChildren().add(cv); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Atrybut obwiedni 'line join'"); stage.setOnCloseRequest(e -> Platform.exit()); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
BEVEL