Start · Sprachen · PHP · Referenz · UI\Draw\Line\Join

UI\Draw\Line\Join

Klasse

Definiert, wie Linien an ihren Verbindungspunkten (Ecken) gezeichnet werden – als Klasse mit Konstanten für den Verbindungsstil.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Draw\Line\Join

Beschreibung

UI\Draw\Line\Join ist eine Konstanten-Klasse der PHP-UI-Erweiterung (php-ui / libui), die den Stil festlegt, mit dem zwei aufeinandertreffende Liniensegmente verbunden werden. Diese Klasse enthält keine Methoden oder Eigenschaften, sondern ausschließlich Klassenkonstanten, die als Werte für den Linien-Join-Typ verwendet werden.

Die Konstanten dieser Klasse werden typischerweise beim Konfigurieren eines UI\Draw\Pen\Size- oder Stroke-Objekts verwendet, um das Erscheinungsbild von Ecken in Pfaden und Formen zu steuern. Es stehen drei Verbindungstypen zur Verfügung: Miter (spitze Ecke), Round (abgerundete Ecke) und Bevel (abgeschnittene Ecke).

Diese Klasse ist Teil des UI-Toolkits für PHP, das auf der plattformübergreifenden libui-Bibliothek basiert und native Desktop-GUIs sowie 2D-Zeichenoperationen ermöglicht. Der Join-Stil wird beim Zeichnen von Strichen (Strokes) auf einem UI\Draw\Context wirksam.

Beispiele

Linien-Join-Stil beim Zeichnen eines Pfades verwenden

<?php
// Setzt den Join-Stil auf 'Miter' (spitze Ecke) beim Definieren eines Stroke
$strokeParams = new UI\Draw\Pen\Size();
$strokeParams->join = UI\Draw\Line\Join::Miter;
$strokeParams->cap  = UI\Draw\Line\Cap::Flat;
$strokeParams->thickness = 2;

// Alternativ: abgerundete Verbindung
$strokeParamsRound = new UI\Draw\Pen\Size();
$strokeParamsRound->join = UI\Draw\Line\Join::Round;
$strokeParamsRound->thickness = 3;

// Abgeschnittene Verbindung
$strokeParamsBevel = new UI\Draw\Pen\Size();
$strokeParamsBevel->join = UI\Draw\Line\Join::Bevel;
$strokeParamsBevel->thickness = 3;

echo "Join-Konstanten:\n";
echo "Miter: " . UI\Draw\Line\Join::Miter . "\n";
echo "Round: " . UI\Draw\Line\Join::Round . "\n";
echo "Bevel: " . UI\Draw\Line\Join::Bevel . "\n";
Join-Konstanten: Miter: 0 Round: 1 Bevel: 2

Join-Stil in einem Draw-Handler einer UI-Area einsetzen

<?php
// Beispiel: Verwendung in einem Area-Draw-Handler
$area = new UI\Area(function(UI\Draw\Context $context, UI\Size $areaSize) {
    // Pfad mit einem Knick erstellen
    $path = new UI\Draw\Path(UI\Draw\Path::Winding);
    $path->newFigure(20, 50);
    $path->lineTo(100, 10);
    $path->lineTo(180, 50);
    $path->end();

    // Stroke-Parameter mit 'Bevel'-Join
    $strokeParams = new UI\Draw\Pen\Size();
    $strokeParams->join      = UI\Draw\Line\Join::Bevel;
    $strokeParams->cap       = UI\Draw\Line\Cap::Flat;
    $strokeParams->thickness = 5;

    $brush = new UI\Draw\Brush();
    $brush->setType(UI\Draw\Brush\Type::Solid);
    $brush->setColor(new UI\Draw\Color(0x0000FF));

    $context->stroke($path, $brush, $strokeParams);
});

// $area würde dann einem UI\Window hinzugefügt werden

// Wichtig · Fallstricke

Die Klasse UI\Draw\Line\Join ist Teil der experimentellen php-ui-Erweiterung (PECL), die sich noch in der Entwicklung befindet und auf Stabilität und API-Konsistenz hin überprüft werden sollte, bevor sie produktiv eingesetzt wird.

Die verfügbaren Konstanten sind: UI\Draw\Line\Join::Miter (0 – spitze, durchgezogene Ecke), UI\Draw\Line\Join::Round (1 – kreisförmig abgerundete Ecke) und UI\Draw\Line\Join::Bevel (2 – abgeschnittene, flache Ecke). Beim Miter-Join kann zusätzlich ein Miter-Limit gesetzt werden, um zu verhindern, dass sehr spitze Winkel zu überlangen Verbindungsspitzen führen.