Inhaltsverzeichnis

std.vector

2D-Vektormathematik mit dem Vec2-Typ (zwei int64-Felder x/y, typisch in Mikro-Pixel oder festen Einheiten). Vollständige Algebra: Addition, Subtraktion, Skalierung, Dot-Produkt, Cross-Produkt, Länge, Normalisierung (Vec2Normalize), Rotation (90°/180°/270° und beliebiger Winkel in Grad), Projektion auf einen anderen Vektor, Reflexion, lineare Interpolation (Vec2Lerp), Clamp, Perpendicular-Vektor und Heading-Winkel.

Einsatzbereiche: Basistyp für die gesamte Geometriebibliothek (std.rect, std.circle, std.vector_batch), Spielmechaniken, Physik-Simulationen, GUI-Koordinatensysteme.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Imports


Typen

Vec2 (struct)

Feld Typ
x int64
y int64

Funktionen

Signatur Sichtbarkeit Beschreibung
IntSqrt(n: int64): int64 priv Ganzzahl-Quadratwurzel berechnen
Vec2New(x: int64, y: int64): Vec2 pub Neuen Vec2 aus x/y erzeugen
Vec2Zero(): Vec2 pub Nullvektor (0, 0) erzeugen
Vec2FromScalar(v: int64): Vec2 pub Skalar als Vec2 (v, v) erzeugen
Vec2Add(a: Vec2, b: Vec2): Vec2 pub Zwei Vektoren addieren
Vec2Sub(a: Vec2, b: Vec2): Vec2 pub Vektor b von a subtrahieren
Vec2Mul(v: Vec2, scalar: int64): Vec2 pub Vektor mit Skalar multiplizieren
Vec2Div(v: Vec2, scalar: int64): Vec2 pub Vektor durch Skalar dividieren
Vec2Negate(v: Vec2): Vec2 pub Vektor negieren
Vec2Dot(a: Vec2, b: Vec2): int64 pub Skalarprodukt zweier Vektoren
Vec2Cross(a: Vec2, b: Vec2): int64 pub Kreuzprodukt zweier Vektoren
Vec2LengthSquared(v: Vec2): int64 pub Quadrat der Vektorlänge berechnen
Vec2Length(v: Vec2): int64 pub Länge des Vektors berechnen
Vec2DistanceSquared(a: Vec2, b: Vec2): int64 pub Quadratischen Abstand zweier Punkte berechnen
Vec2Distance(a: Vec2, b: Vec2): int64 pub Abstand zweier Punkte berechnen
Vec2Normalize(v: Vec2): Vec2 pub Vektor auf Einheitslänge normalisieren
Vec2NormalizeSafe(v: Vec2, fallback: Vec2): Vec2 pub Sicher normalisieren, Fallback bei Nullvektor
Vec2Lerp(a: Vec2, b: Vec2, t: int64): Vec2 pub Linear zwischen zwei Vektoren interpolieren
Vec2Clamp(v: Vec2, min: Vec2, max: Vec2): Vec2 pub Vektor auf Min-Max-Bereich begrenzen
Vec2Rotate(v: Vec2, angle_deg: int64): Vec2 pub Vektor um Winkel in Grad rotieren
Vec2Rotate90(v: Vec2): Vec2 pub Vektor um 90 Grad rotieren
Vec2Rotate180(v: Vec2): Vec2 pub Vektor um 180 Grad rotieren
Vec2Rotate270(v: Vec2): Vec2 pub Vektor um 270 Grad rotieren
Vec2Equal(a: Vec2, b: Vec2): bool pub Zwei Vektoren auf Gleichheit prüfen
Vec2NotEqual(a: Vec2, b: Vec2): bool pub Zwei Vektoren auf Ungleichheit prüfen
Vec2IsZero(v: Vec2): bool pub Prüft ob Vektor der Nullvektor ist
Vec2IsNormalized(v: Vec2): bool pub Prüft ob Vektor normalisiert ist
Vec2Min(a: Vec2, b: Vec2): Vec2 pub Komponentenweises Minimum zweier Vektoren
Vec2Max(a: Vec2, b: Vec2): Vec2 pub Komponentenweises Maximum zweier Vektoren
Vec2Abs(v: Vec2): Vec2 pub Absolutwert beider Komponenten bilden
Vec2Sign(v: Vec2): Vec2 pub Vorzeichen beider Komponenten liefern
Vec2Perpendicular(v: Vec2): Vec2 pub Senkrechten Vektor erzeugen
Vec2Project(v: Vec2, onto: Vec2): Vec2 pub Vektor auf einen anderen projizieren
Vec2Reflect(v: Vec2, normal: Vec2): Vec2 pub Vektor an Normalen reflektieren
Vec2AngleTo(v: Vec2, target: Vec2): int64 pub Winkel zwischen zwei Vektoren berechnen
Vec2Heading(v: Vec2): int64 pub Richtungswinkel des Vektors liefern