Vector en tres dimensiones

Iniciado por _niu, 27 Diciembre 2011, 20:17 PM

0 Miembros y 2 Visitantes están viendo este tema.

_niu

Hola gente. Estoy hace dos dias intentando y realmente no se que me pasa pero no puedo hacerlo.

Quiero hacer girar un vector al rededor del centro de coordenadas, con un determinado radio. En dos dimensiones me basta.

Lo que obtube en estos dos dias es que: con la funcion ceno, no puedo hacer un circulo, asique gaste tiempo al dope, lo que si sirve es que:

vector.y=sqrt(pow(radio,2)-pow(vector.x,2));

pero pincho cuando y==0, se me queda trabado ahi y no se me mueve el vector, si alguien me ayuda con este problema se lo agradeceria mucho.
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";

dooque

Este foro es para cuestiones relacionadas al lenguaje, no a problemas matematicos, si bien podria ayudarte a resolver el problema, no es de lo que se trata este subforo, no es nada encontra tuyo, pero me parece que la pregunta es mas un problema matematico que un problema con el lenguaje C o C++ en si, se entiende?

saludos!
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.  -- Kernighan

_niu

std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";


_niu

Cita de: Karman en 30 Diciembre 2011, 05:22 AM
http://pastebin.com/zNZK4Wa6

Gracias! Lo vere con detenimiento, y luego posteo que onda, gracias.

La idea que segui anterior mente se baso, en hacer, que la posicion x este dada por la funcion seno o coseno dependiendo del sentido que le quiera dar y luego le aplico la formula del circulo que postee al princpio. Luego si la posicion x es paresida al radio, multiplico por -1, para ir para abajo. Bueno... cuando me salga bien postee, gracias!
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";

BlackZeroX

#5
Quieres coordendas esfericas?... en un vector R3...



    x = distancia * sin(M_PI / 180 * azim) * cos(M_PI / 180 * elev);
    y = distancia * sin(M_PI / 180 * elev);
    z = distancia * cos(M_PI / 180 * azim) * cos(M_PI / 180 * elev);



Si es esto lo que quieres avisa...

Dulces Lunas!¡.
The Dark Shadow is my passion.

_niu

ya ta jejeje, en lo que pasaron arriba:

suponga que quiero rotar en una dimension unicamente, onda x e y:

xnueva=x*cos(angulo)-y*sin(angulo);
ynueva=x*sen(angulo)-y*cos(angulo);

(:
Gracias!
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";