Zielony Smok

JavaFX canvas: atrybut obwiedni ‘miter limit’

Atrybut: miter limit

Typ: double

Wartość domyślna: 10.0

Getter: double getMeterLimit()

Setter: void setMiterLimit(double)

Save/restore: true

Opis: Ogranicznik długości złączenia linii – od 0. Jeżeli typ złączenia to MITER to atrybut określa długość połączenia w osi złączenia, liczoną od najbardziej wewnętrznego punktu złączenia w kierunku na zewnątrz. Jeżeli długość wynikająca z obliczeń jest większa niż podana w atrybucie to renderowany obraz jest obcinany od zewnątrz, a złączenie MITER staje się faktycznie odpowiednim złączeniem BEVEL.

Atrybut obwiedni ‘miter limit’

Klasa Listing25_45

Ściągnij klasę Listing25_45

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.stage.Stage;

public class Listing25_45 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, 250);
            GraphicsContext gc = cv.getGraphicsContext2D();
            //
            gc.setStroke(Color.BLUE);
            gc.setLineWidth(15);
            gc.setMiterLimit(10);
            //-
            gc.beginPath();
            gc.moveTo(50, 50);
            gc.lineTo(300, 100);
            gc.lineTo(50, 150);
            gc.stroke();
            //-
            double ml = gc.getMiterLimit();
            System.out.println(ml);
            //-
            gc.setLineWidth(1);
            gc.setStroke(Color.RED);
            gc.beginPath();
            gc.moveTo(50, 50);
            gc.lineTo(300, 100);
            gc.lineTo(50, 150);
            gc.stroke();
            //
            gc.setStroke(Color.GRAY);
            gc.beginPath();
            gc.strokeLine(260, 50, 260, 150);
            gc.strokeLine(300,50, 300, 150);
            gc.strokeLine(340,50, 340, 150);
            //-
            root.getChildren().add(cv);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.setTitle("Atrybut obwiedni 'miter limit'");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}          
10.0
Atrybut obwiedni 'miter limit'
Rys. 25_51. Atrybut obwiedni ‘miter limit’