→ Zurück zur Unit-Übersicht · std.geodesy · std.matrix · std.quat
Zwei Units für dreidimensionale Geometrie in f64: ein Vektortyp und die Umrechnung zwischen kartesischen, zylindrischen und Kugelkoordinaten.
Die Lücke, die sie füllen: std.vector führt Vec2 mit int64 — gut für Bildschirmkoordinaten, untauglich für alles Physikalische. std.quat erzeugt Drehungen, hat aber keinen Vektortyp, auf den es sie anwenden könnte.
Quelle: std/coordinates/
| Unit | Import | Inhalt |
|---|---|---|
| std.coordinates.vec3 | import std.coordinates.vec3; | V3-Typ: Grundrechenarten, Skalar- und Kreuzprodukt, Norm, Normierung, Winkel, Projektion — mit NaN als Fehlerwert |
| std.coordinates.transform | import std.coordinates.transform; | Zylinderkoordinaten (Cyl), Kugelkoordinaten in zwei Zählweisen (SphPolar, SphElev) und die Umrechnungen dazwischen |
Die Mathematik zählt vom Nordpol (Polarwinkel θ), Astronomie und Navigation zählen vom Horizont (Elevation). Beide sind gebräuchlich, beide heißen umgangssprachlich „Kugelkoordinaten„ — und ihre Winkel unterscheiden sich um 90°.
| Typ | Winkel | Übliches Feld |
|---|---|---|
SphPolar | theta — vom Nordpol aus | Physik, Mathematik |
SphElev | elev — von der Horizontebene aus | Astronomie, Antennen, Navigation |
Deshalb gibt es beide Typen mit eigenen Namen und SphPolarToElev / SphElevToPolar dazwischen, statt einer einzigen Struktur, bei der man raten muss, welche Zählweise gemeint ist.
unit main;
import std.coordinates.vec3;
import std.coordinates.transform;
import std.io;
import std.string;
fn main(): int64 {
var a: V3 := V3New(3.0, 0.0, 4.0);
PrintLn(StrConcat("Betrag: ", FloatToStr(V3Norm(a), 3)));
var s: SphElev := CartToSphElev(a);
PrintLn(StrConcat("Elevation: ", FloatToStr(RadToDeg(s.elev), 2)));
PrintLn(StrConcat("Azimut: ", FloatToStr(RadToDeg(s.azim), 2)));
var zurueck: V3 := SphElevToCart(s);
PrintLn(StrConcat("zurueck x: ", FloatToStr(zurueck.x, 3)));
return 0;
}
| Aufgabe | Unit |
|---|---|
Vektoren in f64, 3D | std.coordinates.vec3 |
| Ganzzahlige 2D-Vektoren (Bildschirm) | std.vector |
| Matrizen, Transformationsketten | std.matrix |
| Drehungen ohne Gimbal Lock | std.quat |
| Positionen auf der Erde | std.geodesy, std.geo.sphere |
| Bahnmechanik | std.astro |
Letzte Aktualisierung: 2026-09-06 — Seite neu angelegt; erhoben aus std/coordinates/*.lyx.