Skip to content

Line (Linie)

Die Figur Line ermöglicht es eine Linie zwischen zwei Endpunkten zu zeichnen.

Import

Die Klasse Line ist im Paket pi.actor enthalten und kann über die Anweisung

import pi.actor.Line;

importiert werden.

Klassenkarte

Das Klassendiagramm der Figur Line zusammen mit der inneren Klasse Line.End und dem Aufzählungstyp Line.ArrowType.

Eine Linie in der Physik-Simulation

Wie alle anderen Figuren kann auch die Line-Figur in einer Physik-Simulation verwendet werden. Das folgende Beispiel lässt die Linie bzw. den Pfeil in einem Bogen nach oben schießen. Damit sich der Pfeil umdreht und mit der Pfeilspitze auf dem Boden landet, wird seine Fallrichtung mit einem Drehimpuls (applyRotationImpulse(-7)) beeinflusst.

    public LinePhysicsDemo()
    {
        backgroundColor("blue");
        ground.color("green");
        Line line = new Line(-9, -8, -9, -4);
        line.makeDynamic()
            .applyImpulse(25, 120)
            .applyRotationImpulse(-7)
            .color("brown");
        line.end2.arrow(true);
        add(line);
    }
Zum Java-Code: demos//home/runner/work/engine-pi/engine-pi/subprojects/demos/src/main/java/demos/docs/main_classes/actor/line/LinePhysicsDemo.java

dashPattern (Strichmuster)

    public LineDashPatternDemo()
    {

        add(new Text(".dashed(true)").anchor(START, yCursor));
        yCursor--;
        createDashedLine(0.05);
        createDashedLine(0.1);
        createDashedLine(0.25);
        createDashedLine(0.5);
        createDashedLine(1);
        yCursor--;
        add(new Text(".dashPattern(...)").anchor(START, yCursor));
        yCursor--;

        createDashPatternLine(1);
        createDashPatternLine(0.5);
        createDashPatternLine(0.25);
        createDashPatternLine(1, 1);
        createDashPatternLine(1, 2);
        createDashPatternLine(0.5, 0.5);
        createDashPatternLine(0.5, 1);
        createDashPatternLine(0.1, 0.2, 0.3);

    }

    private void createDashedLine(double strokeWidth)
    {
        add(new Text(strokeWidth).height(0.5)
            .anchor(START - 3, yCursor - 0.25));
        add(new Line(START, yCursor, END, yCursor).strokeWidth(strokeWidth)
            .dashed(true));
        yCursor--;
    }

    private void createDashPatternLine(double... dashPattern)
    {
        add(new Text(dashPattern).height(0.5).anchor(-11, yCursor - 0.25));
        add(new Line(START, yCursor, END, yCursor).dashPattern(dashPattern));
        yCursor--;
    }
Zum Java-Code: demos//home/runner/work/engine-pi/engine-pi/subprojects/demos/src/main/java/demos/docs/main_classes/actor/line/LineDashPatternDemo.java

Mit der Setter-Methode Line#dashPattern(double...) kann das Muster der gestrichelten Linie festgelegt werden.

dashPattern(double... dashPattern) – beschreibt die Längen der Abschnitte im Wechsel:

  1. Argument: gezeichneter Abschnitt
  2. Argument: Lücke
  3. Argument: gezeichneter Abschnitt
  4. Argument: Lücke
  5. usw.

Beispiel: .dashPattern(1)

1 Meter zeichnen, 1 Meter Lücke, usw.

Beispiel: .dashPattern(1, 2)

1 Meter zeichnen, 2 Meter Lücke, 1 Meter zeichnen, 2 Meter Lücke usw.

Beispiel: .dashPattern(1, 2, 3)

1 Meter zeichnen, 2 Meter Lücke, 3 Meter zeichnen, 1 Meter Lücke, 2 Meter zeichnen, 3 Meter Lücke, 1 Meter zeichnen usw.

Alle dash-Werte müssen größer als 0 sein. Das Muster wird entlang des gesamten Pfads fortlaufend angewendet.