Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: wintermute83 en 19 de Diciembre de 2010, 01:27:40 PM

Título: extraño error que no entiendo..
Publicado por: wintermute83 en 19 de Diciembre de 2010, 01:27:40 PM
Hola a todos! estoy teniendo un problemilla de esos que te vuelven loco.
Estoy haciendo una clase sencilla para usar vectores (matemáticos), y todo iba bien hasta que he introducido el método multiplicar.
Muchas gracias!

si quiero sumar un vector hago lo siguiente :
Vector vec = new ( 0,0,0 );
Vector vec2 = new ( 0,0,0 );
Vector sum = new ( 0,0,0 );

sum = vec.add(vec2);   // hasta aquí bien sin embargo..

sum = vec.multiply(5);   // Cuando imprimo en pantalla las componentes de sum me dice que NAN, por que????


A continuacion la clase vector que uso.

public class Vector {
    private float x,y,z;

    public Vector ( float x, float y, float z){
        this.x = (x);
        this.y = (y);
        this.z = (z);
    }

    public float getX(){
        return x;
    }   
    public float getY(){
        return y;
    }
    public float getZ(){   
        return z;
    }
   
    public void setX(float x){
        this.x = x;
    }
    public void setY(float y){ 
        this.y = y;
    }
    public void setZ ( float z ){
        this.z = z;
    }


    public Vector add ( float x,float y,float z ){

        float nx,ny,nz;
        nx=(this.getX()+x);
        ny=(this.getY()+y);
        nz=(this.getZ()+z);

        return new Vector(nx,ny,nz);
    }

    public Vector multiply ( float scalar ) {

        float nx,ny,nz;
        nx = (this.getX()*scalar);
        ny = (this.getY()*scalar);
        nz = (this.getZ()*scalar);
       
        return new Vector(nx,ny,nz);
    }

}
Título: Re: extraño error que no entiendo..
Publicado por: wintermute83 en 20 de Diciembre de 2010, 08:11:09 AM
Lo encontré! Siento haber soltado la duda pero pensé que sería por algo mas conceptual.
Resulta que no, que uno de los vectores a los que llamaba valía 0 porque no se actualizaba como debía, de ahí 0/algo = NaN

Gracias de todas formas.