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 |
