VF_rotateCoordinatesVD_rotateCoordinatesVE_rotateCoordinates
VCF_rotateCoordinatesVCD_rotateCoordinatesVCE_rotateCoordinates
FunktionRotation cartesischer Koordinaten entgegen dem Uhrzeigersinn
Syntax C/C++#include <VFmath.h>
void VF_rotateCoordinates( fVector Xrot, fVector Yrot, fVector X, fVector Y, ui size, float costheta, float sintheta );

void VCF_rotateCoordinates( cfVector XYrot, cfVector XY, ui size, float costheta, float sintheta );
C++ VecObj#include <OptiVec.h>
void vector<T>::rotateCoordinates( const vector<T>& Yrot, const vector<T>& X,const vector<T>& Y, T costheta, T sintheta );
void vector<complex<T> >::rotateCoordinates( const vector<complex<T> >& XY, T costheta, T sintheta );
Pascal/Delphiuses VFmath;
procedure VF_rotateCoordinates( Xrot, Yrot, X, Y:fVector; size:UIntSize; costheta, sintheta:Single );

procedure VCF_rotateCoordinates( XYrot, XY:cfVector; size:UIntSize; costheta, sintheta:Single );
CUDA-Funktion C/C++#include <cudaVFmath.h>
void cudaVF_rotateCoordinates( fVector d_Xrot, fVector d_Yrot, fVector d_X, fVector d_Y, ui size, float costheta, float sintheta );
void cusdVF_rotateCoordinates( fVector d_Xrot, fVector d_Yrot, fVector d_X, fVector d_Y, ui size, float *d_costheta, float *d_sintheta );
void cudaVCF_rotateCoordinates( cfVector d_XYrot, cfVector d_XY, ui size, float costheta, float sintheta );
void cusdVCF_rotateCoordinates( cfVector d_XYrot, cfVector d_XY, ui size, float *d_costheta, float *d_sintheta );
void VFcu_rotateCoordinates( fVector h_Xrot, fVector h_Yrot, fVector h_X, fVector h_Y, ui size, float costheta, float sintheta );
void VCFcu_rotateCoordinates( cfVector h_XYrot, cfVector h_XY, ui size, float costheta, float sintheta );
CUDA-Funktion Pascal/Delphiuses VFmath;
procedure cudaVF_rotateCoordinates( d_Xrot, d_Yrot, d_X, d_Y:fVector; size:UIntSize; costheta, sintheta:Single );
procedure cusdVF_rotateCoordinates( d_Xrot, d_Yrot, d_X, d_Y:fVector; size:UIntSize; d_costheta, d_sintheta:Single );
procedure cudaVCF_rotateCoordinates( d_XYrot, d_XY:cfVector; size:UIntSize; costheta, sintheta:Single );
procedure cusdVCF_rotateCoordinates( d_XYrot, d_XY:cfVector; size:UIntSize; d_costheta, d_sintheta:Single );
procedure VFcu_rotateCoordinates( h_Xrot, h_Yrot, h_X, h_Y:fVector; size:UIntSize; costheta, sintheta:Single );
procedure VCFcu_rotateCoordinates( h_XYrot, h_XY:cfVector; size:UIntSize; costheta, sintheta:Single );
BeschreibungDie entweder in dem reellen Vektorpaar X,Y oder in dem komplexen Vektor XY an die Funktion übergebenen Koordinaten werden entgegen dem Uhrzeigersinn um den Winkel theta gedreht. Dabei wird theta nicht selbst angegeben, sondern über seinen Cosinus und Sinus spezifiziert, also als costheta und sintheta:
Xroti = cos(theta) * Xi - sin(theta) * Yi,
Yroti = sin(theta) * Xi + cos(theta) * Yi

Das Ergebnis kann mit einem konstanten Faktor skaliert werden. Hierzu multipliziere man einfach costheta und sintheta mit dem gewünschten Skalierungsfaktor. Diese Funktion läßt sich auch für Berechnungen nach analogen Formeln einsetzen, d.h. costheta und sintheta müssen nicht einem tatsächlichen Drehwinkel entsprechen.

Fehlerbehandlungkeine
Rückgabewertkeiner
QuerverweisVF_lincomb

VectorLib Inhaltsverzeichnis  OptiVec Home