Diese Klasse beschreibt einen 2D-Vektor
Ausgabe auf dem Terminal
Objekte anlegen und zerstören
Diese Klasse beschreibt einen 2D-Vektor. Der Vektor akzeptiert Lesen und Schreiben seiner Werte sowohl in Polarkoordinaten als auch in kartesischen Koordinaten.Per Konvention werden die Werte so interpretiert:
- Kartesisches Koordinatensystem:
- x-Achse nach rechts, y-Achse nach oben. Bei Angabe als Paar: (x, y)
- Polarkoordinatensystem
- Winkel gegen den Uhrzeigersinn im Bogenmass [-Pi,Pi]. Bei Laenge 0 ist auch Winkel 0. Bei Angabe als Paar: (Laenge, Winkel) \end{description
Intern werden momentan nur die kartesischen Koordinaten gefuehrt, die Polarkoordinaten jeweils dynamisch ausgerechnet.
Die Klasse prueft vor Berechnungen <b>nicht</b>, ob die Komponenten gleich UNDEF_DOUBLE sind. Werden zwei undefinierte Vektoren z.B. addiert, so ist das Ergebnis nicht unbedingt ein undefinierter Vektor (d.h. er antwortet auf isValid() nicht unbedingt mit NO).
Quelltext
[Header | [Implementierung]
CVS Informationen zum Interface
************************************************** * * Aktueller Stand * * $RCSfile: Vector.h,v $ * $Revision: 1.27 $ * $Date: 1998/08/14 13:21:29 $ * $Author: myritz $ * **************************************************
Vector( double value1, double value2, CoordinateSystemEnum aCoordinateSystem = CARTESIAN, AngleSystemEnum anAngleSystem = RADIAN )
value2 - Die y-Koordinate bei kartesischen, der Winkel im Bogenmass
bei Polarkoordinaten.
aCoordinateSystem. - Das Koordinatensystem, in dem die beiden vorigen
Werte zu interpretieren sind. CARTESIAN ist default.
anAngleSystem. - Das Winkelmesssystem, in dem der Winkel bei
einer Polarkoordinatenangabe angegeben ist. RADIAN ist default.
ist - einer der Werte undefiniert wird der Vektor auf (UNDEF_DOUBLE,UNDEF_DOUBLE) gesetzt
Vector()
double x()
double y()
void setCartesian(const double anXValue, const double anYValue)
double length()
double angle( AngleSystemEnum anAngleSystem = RADIAN )
void setPolar( double aLength, double anAngle, AngleSystemEnum anAngleSystem = RADIAN )
void set( double value1, double value2, CoordinateSystemEnum aCoordinateSystem = CARTESIAN, AngleSystemEnum anAngleSystem = RADIAN )
value2 - Die y-Koordinate bei kartesischen, der Winkel bei
Polarkoordinaten.
aCoordinateSystem - Das Koordinatensystem, in dem die beiden vorigen
Werte zu interpretieren sind. CARTESIAN ist default.
anAngleSystem. - Das Winkelmesssystem, in dem der Winkel bei
einer Polarkoordinatenangabe angegeben ist. RADIAN ist default.
bool isValid()
bool wasInitializedWithNegativeDist()
void normalize()
Vector operator + (const Vector& v2)
Vector operator - (const Vector& v2)
friend Vector operator * (double aScalarValue, const Vector& aVector)
const Vector& operator += (const Vector& v2)
const Vector& operator -= (const Vector& v2)
bool operator == ( const Vector v2 )
bool operator != ( const Vector v2 )
virtual String toString()
virtual StorableObject* copy()
double theX
double theY
bool theWasInitializedWithNegativeDist
Einleitung | Architektur | Dynamische Zusammenhänge | Referenzhandbuch | FAQ | Anhang A | Anhang B
generated by doc++