Signatur
Beschreibung
UI\Point ist eine einfache Wertestruktur der PHP-UI-Erweiterung, die einen Punkt im zweidimensionalen Raum durch seine X- und Y-Koordinate beschreibt. Objekte dieser Klasse werden überall dort verwendet, wo eine Position auf einem Bildschirm, in einem Control oder in einem zeichenbaren Bereich (UI\Area) angegeben werden muss.
Typische Einsatzgebiete sind das Übergeben von Mausklick-Positionen in Event-Handlern, das Positionieren von Controls sowie das Zeichnen von Formen innerhalb eines UI\Area-Kontexts mithilfe des Zeichen-Kontexts UI\Draw\Pen.
Die Klasse stellt die beiden öffentlichen Eigenschaften x und y bereit, die direkt gelesen und geschrieben werden können. Alternativ können die Werte bereits im Konstruktor übergeben werden, was den üblichen Weg für die Erstellung unveränderlicher Positionen darstellt.
Da UI\Point ein reines Datentransferobjekt ohne komplexe Logik ist, empfiehlt es sich, Koordinaten direkt beim Konstruktoraufruf zu setzen und das Objekt dann unveränderlich zu behandeln, um Seiteneffekte in UI-Callbacks zu vermeiden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x | float | 0.0 | Die horizontale Koordinate des Punktes (von links nach rechts). |
| $y | float | 0.0 | Die vertikale Koordinate des Punktes (von oben nach unten). |
Beispiele
Einfachen Punkt erstellen und Koordinaten auslesen
<?php
// Einen Punkt bei (100, 200) erstellen
$point = new UI\Point(100.0, 200.0);
echo 'X: ' . $point->x . PHP_EOL;
echo 'Y: ' . $point->y . PHP_EOL;
// Koordinaten nachträglich ändern
$point->x = 150.0;
$point->y = 250.0;
echo 'Neues X: ' . $point->x . PHP_EOL;
echo 'Neues Y: ' . $point->y . PHP_EOL;
UI\Point in einem Area-Handler für Mausklicks verwenden
<?php
use UI\Area;
use UI\Point;
use UI\Size;
use UI\Draw\Pen;
use UI\Draw\Brush;
use UI\Draw\Path;
use UI\Draw\Brush\Type;
class MyArea extends Area {
protected function mouse(Point $areaPoint, Size $areaSize, int $flags): void {
// Gibt die Klickposition innerhalb der Area aus
echo sprintf(
'Klick bei X=%.1f, Y=%.1f%s',
$areaPoint->x,
$areaPoint->y,
PHP_EOL
);
}
protected function draw(Pen $pen, Size $areaSize, Point $clipPoint, Size $clipSize): void {
// Einen kleinen Kreis am Ursprungspunkt zeichnen
$brush = new Brush(Type::Solid, 0xFF0000, 1.0);
$path = new Path();
$center = new Point(50.0, 50.0);
// Pfad und Zeichenoperationen würden hier folgen
}
}
// Wichtig · Fallstricke
Erweiterung erforderlich: UI\Point ist Teil der PECL-Erweiterung ui (auch bekannt als php-ui oder libui-Binding). Die Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (pecl install ui).
Die Koordinaten werden intern als Fließkommazahlen (float) gespeichert. Bei der Übergabe von ganzzahligen Werten (z. B. aus Event-Daten) findet eine automatische Konvertierung statt.
Beachte, dass das Y-Koordinatensystem in UI-Bibliotheken typischerweise von oben nach unten verläuft: Der Ursprung (0, 0) liegt in der oberen linken Ecke.