3D-Vektor (Linkshaendiges Koordinatensystem) More...
#include <Vec.h>
Public Member Functions | |
Vec () | |
Konstruktor. | |
virtual | ~Vec () |
Destruktor. | |
Vec (Vec &v) | |
Konstruktor. | |
Vec (int x, int y, int z) | |
Konstruktor. | |
Vec (float x, float y, float z) | |
Konstruktor. | |
void | clear (void) |
Setzt den Vektor auf 0,0,0. | |
void | set (float x, float y, float z) |
Setter-Methode. | |
void | set (Vec &v) |
Setter-Methode. | |
void | add (Vec &v) |
Vektoraddition. | |
void | sub (Vec &v) |
Vektorsubtraktion. | |
void | sub (Vec &v1, Vec &v2) |
Vektorsubtraktion: v = v1 - v2. | |
void | mul (Vec &v) |
Vektormultiplikation. | |
void | div (float v) |
Vektordivision mit einem Skalar. | |
void | mul (float d) |
Skalarmultiplikation (velaengert oder verkuerzt den Vektor) | |
float | length (void) |
Ermittelt die Laenge (Betrag) des Vektors. | |
float | dot (Vec &v) |
Dotprodukt. | |
void | cross (Vec &v1, Vec &v2) |
Kreuzprodukt v = v1 x v2. | |
bool | getZ (Vec &a, Vec &b, float z) |
Berechnet den Punkt zwischen den Vektoren an z. | |
float | angle (Vec &v) |
Winkel zwischen zwei Vektoren. | |
void | transform (Matrix &mat) |
Fuehre die in der Matrix abgelegten Rechenoperationen auf diesen Vektor aus. Achtung: erst Rotation dann Transformation !!!!!!!! | |
void | normalize (void) |
Normalisieren (Betrag=1) | |
void | negative (void) |
Negiert den Vektor (Richtungsumkehr) | |
void | rotateX (float w) |
Rotation um die X-Achse (Richtung der Horizontalen) Der Winkel wird in Grad angegeben, weil die trigonometrischen Funktionen ueber Tabellen implementiert sind (Performanz!) Fuer w > 0: Neigung nach unten. | |
void | rotateY (float w) |
Rotation um die Y-Achse (Hoehenachse), Fuer w > 0: Bei der Draufsicht (auf den 3D-Raum) wird im Uhrzeigersinn gedreht. | |
float | getWinkelY (void) |
Gibt den Winkel zur Y-Achse zurueck. | |
float | getWinkelX (void) |
Gibt den Winkel zur X-Achse zurueck. | |
Static Public Member Functions | |
static float | grad2rad (float grad) |
Umwandlung Grad (0...360) nach Rad (0...2PI) | |
static float | rad2grad (float rad) |
Umwandlung Rad (0...2PI) nach Grad (0...360) | |
Public Attributes | |
float | m_x |
float | m_y |
float | m_z |
Static Public Attributes | |
static float const | PI |
Private Member Functions | |
float | getWinkel (float a, float b) |
Gibt den Winkel zurueck. |
3D-Vektor (Linkshaendiges Koordinatensystem)
Kamerasicht: x zeigt nach RECHTS y zeigt nach OBEN z zeigt vom Betrachter weg (in die TIEFE)
Draufsicht auf die Map: x zeigt nach RECHTS (OSTEN) y zeigt in die HOEHE (NORDEN) z zeigt zum Betrachter (nach OBEN)
Vec::Vec | ( | ) |
Konstruktor.
Vec::~Vec | ( | ) | [virtual] |
Destruktor.
Vec::Vec | ( | Vec & | v | ) |
Konstruktor.
v | Vektor |
Vec::Vec | ( | int | x, |
int | y, | ||
int | z | ||
) |
Konstruktor.
x | X-Koordinate |
y | Y-Koordinate |
z | Z-Koordinate |
Vec::Vec | ( | float | x, |
float | y, | ||
float | z | ||
) |
Konstruktor.
x | X-Koordinate |
y | Y-Koordinate |
z | Z-Koordinate |
void Vec::add | ( | Vec & | v | ) |
Vektoraddition.
v | Vektor |
float Vec::angle | ( | Vec & | v | ) |
Winkel zwischen zwei Vektoren.
v | Vektor |
void Vec::clear | ( | void | ) |
Setzt den Vektor auf 0,0,0.
Kreuzprodukt v = v1 x v2.
v1 | Vektor #1 |
v2 | Vektor #2 |
void Vec::div | ( | float | v | ) |
Vektordivision mit einem Skalar.
v | float-Wert |
float Vec::dot | ( | Vec & | v | ) |
Dotprodukt.
v | Vektor |
float Vec::getWinkel | ( | float | zz, |
float | xx | ||
) | [private] |
Gibt den Winkel zurueck.
float Vec::getWinkelX | ( | void | ) |
Gibt den Winkel zur X-Achse zurueck.
float Vec::getWinkelY | ( | void | ) |
Gibt den Winkel zur Y-Achse zurueck.
Berechnet den Punkt zwischen den Vektoren an z.
a | Startpunkt, bzw. Startvektor |
b | Startpunkt, bzw. Startvektor |
z | Startpunkt, bzw. Startvektor |
float Vec::grad2rad | ( | float | grad | ) | [static] |
Umwandlung Grad (0...360) nach Rad (0...2PI)
grad |
float Vec::length | ( | void | ) |
Ermittelt die Laenge (Betrag) des Vektors.
void Vec::mul | ( | float | d | ) |
Skalarmultiplikation (velaengert oder verkuerzt den Vektor)
d | float Wert |
void Vec::mul | ( | Vec & | v | ) |
Vektormultiplikation.
v | Vektor |
void Vec::negative | ( | void | ) |
Negiert den Vektor (Richtungsumkehr)
void Vec::normalize | ( | void | ) |
Normalisieren (Betrag=1)
float Vec::rad2grad | ( | float | rad | ) | [static] |
Umwandlung Rad (0...2PI) nach Grad (0...360)
rad |
void Vec::rotateX | ( | float | w | ) |
Rotation um die X-Achse (Richtung der Horizontalen) Der Winkel wird in Grad angegeben, weil die trigonometrischen Funktionen ueber Tabellen implementiert sind (Performanz!) Fuer w > 0: Neigung nach unten.
w | Winkel in RAD |
void Vec::rotateY | ( | float | w | ) |
Rotation um die Y-Achse (Hoehenachse), Fuer w > 0: Bei der Draufsicht (auf den 3D-Raum) wird im Uhrzeigersinn gedreht.
w | Winkel in RAD |
void Vec::set | ( | float | x, |
float | y, | ||
float | z | ||
) |
Setter-Methode.
x | X-Koordinate |
y | Y-Koordinate |
z | Z-Koordinate |
void Vec::sub | ( | Vec & | v | ) |
Vektorsubtraktion.
v | Vektor |
void Vec::transform | ( | Matrix & | mat | ) |
float Vec::m_x |
float Vec::m_y |
float Vec::m_z |
float const Vec::PI [static] |