public class nokta3D
{
protected double xi,xj,xk;

public nokta3D()
{
xi=0;
xj=0;
xk=0;
}

public nokta3D(double yi,double yj,double yk)
{
xi=yi;
xj=yj;
xk=yk;
}

public nokta3D(nokta3D y)
{
xi=y.xi;
xj=y.xj;
xk=y.xk;
}

public void xiGir(double yi)
{
xi=yi;
}

public void xjGir(double yj)
{
xj=yj;
}

public void xzGir(double yk)
{
xk=yk;
}

public void noktaGir(double yi,double yj,double yk)
{
xi=yi;
xj=yj;
xk=yk;
}

public void noktaGir(nokta3D y)
{
xi=y.xi;
xj=y.xj;
xk=y.xk;
}

public double xiOku()
{
return xi;
}

public double xjOku()
{
return xj;
}

public double xkOku()
{
return xk;
}

public void topla(nokta3D y)
{
 xi+=y.xi;
 xj+=y.xj;
 xk+=y.xk;
}


public void fark(nokta3D y)
{
 xi-=y.xi;
 xj-=y.xj;
 xk-=y.xk;
}

public nokta3D noktaOku()
{
return this;
}

public double R()
{
//koordinat merkezi ile nokta arasındaki mesafe
return Math.sqrt(xi*xi+xj*xj+xk*xk);
}

public double cosai()
{
//noktanın i ekseniyle yaptığı açının kosünüsü 
return xi/R();
}

public double cosaj()
{
//noktanın j ekseniyle ekseniyle yaptığı açının kosünüsü
return xj/R();
}

public double cosak()
{// noktanın k ekseniyle yaptığı açının kosünüsü 
return xk/R();
}

public boolean esittir(nokta3D v)
{
boolean b=((xi==v.xi)&&(xj==v.xj)&&(xk==v.xk));
return b;
}

public boolean buyuktur(nokta3D v)
{
  return (this.R()>v.R());
}

public boolean kucuktur(nokta3D v)
{
  return (this.R()<v.R());
}

public String toString()
{
 return ""+xi+" i + "+xj+" j + "+xk+" k";
}

}
