Red de conocimiento informático - Aprendizaje de código fuente - Es programación. Se conocen las coordenadas de un punto en un sistema de coordenadas bidimensional y las coordenadas del punto en el nuevo sistema de coordenadas se obtienen después de girar el sistema de coordenadas.

Es programación. Se conocen las coordenadas de un punto en un sistema de coordenadas bidimensional y las coordenadas del punto en el nuevo sistema de coordenadas se obtienen después de girar el sistema de coordenadas.

Problema de rotación de vectores.

Supongamos que el vector A(x, y) se gira en sentido antihorario un grado theta

Entonces hay un vector rotado B(x*cos(theta)-y*sin(theta), ?x *sin(theta) y*cos(theta))

La rotación del sistema de coordenadas es igual a la rotación del punto alrededor del punto lejano, que es igual a la rotación del vector

Código: struct?Vector?{

doble?x,?y;

Vector()?{x?=?y?=?0;}

Vector(doble?a,?doble?b) :x(a),y(b){}

const?Vector?rotateAC?(doble?theta)?;

¿const?Vector?getRotatedAC?(doble?theta)?;

const?Vector?rotateC?(doble?theta)?;

const ?Vector?getRotatedC?(doble?theta)?const?;

const?Vector?operador? =?(Vector?b);

const?Vector?operador?-= ?(Vector?b);

¿const?Vector?operador?*=?(doble?b);

const?Vector?operador?/=?(doble?b) ;

};

const ?Vector?Vector?::?rotateAC?(doble?theta)

{return?(*this)?=? getRotatedAC(theta);}

const?Vector?Vector ?::?getRotatedAC?(double?theta)?const

{return?Vector(x*cos(theta)? -?y*sin(theta),?x*sin(theta)? ? y*cos(theta));}

const?Vector?Vector?::?rotateC?(doble?theta) ?{return?rotateAC(-theta);}

const?Vector?Vector?::?getRotatedC?(double?theta)?const?{return?getRotatedAC(-theta);}