Signatur
Beschreibung
UI\Draw\Line\Cap ist eine Enum-artige Klasse der PHP-UI-Erweiterung (php-ui / libui), die Konstantenwerte für die verschiedenen Endkappen-Stile von Linien bereitstellt. Mit diesen Stilen lässt sich steuern, wie das Ende einer gezeichneten Linie aussieht.
Die Klasse wird in Verbindung mit UI\Draw\Stroke verwendet, wo der Endkappen-Stil als Parameter übergeben wird. Die drei verfügbaren Stile sind UI\Draw\Line\Cap::Flat (flach, bündig mit dem Endpunkt), UI\Draw\Line\Cap::Round (abgerundet, halbkreisförmig über den Endpunkt hinaus) und UI\Draw\Line\Cap::Square (rechteckig, über den Endpunkt hinausragend, ähnlich wie Flat, aber mit einem kleinen Überstand).
Diese Klasse ist Teil der experimentellen UI-Erweiterung für PHP, die auf der nativen GUI-Bibliothek libui basiert. Sie eignet sich für Desktop-Anwendungen, die mit PHP und nativen UI-Elementen gezeichnet werden sollen.
Beispiele
Linie mit abgerundetem Endkappen-Stil zeichnen
<?php
use UI\Draw\Pen;
use UI\Draw\Stroke;
use UI\Draw\Line\Cap;
use UI\Draw\Line\Join;
use UI\Draw\Color;
use UI\Draw\Path;
// Stroke mit rundem Endkappen-Stil erstellen
$stroke = new Stroke(
Cap::Round, // Endkappen-Stil: abgerundet
Join::Miter, // Verbindungsstil
2.0, // Linienbreite
10.0 // Miter-Limit
);
// Pfad für eine einfache Linie erstellen
$path = new Path(Path::Winding);
$path->newFigure(10, 50);
$path->lineTo(200, 50);
$path->end();
// Linie auf dem Pen zeichnen
/** @var Pen $pen */
$pen->stroke($path, new Color(0, 0, 0, 1), $stroke);
Verschiedene Endkappen-Stile vergleichen
<?php
use UI\Draw\Line\Cap;
// Verfügbare Endkappen-Stile ausgeben
$caps = [
'Flat' => Cap::Flat,
'Round' => Cap::Round,
'Square' => Cap::Square,
];
foreach ($caps as $name => $value) {
echo sprintf("Cap::%s = %d\n", $name, $value);
}
// Wichtig · Fallstricke
Hinweis: Die PHP-UI-Erweiterung ist experimentell und wird nicht mit dem offiziellen PHP-Kern ausgeliefert. Sie muss separat installiert werden (z. B. über PECL: pecl install ui). Die API kann sich zwischen Versionen ändern.
Cap::Flat und Cap::Square sehen sich ähnlich, unterscheiden sich jedoch dadurch, dass Square das Ende der Linie um die halbe Linienbreite über den Endpunkt hinaus verlängert, während Flat genau am Endpunkt endet.