Funzioni vettoriali di base:


//Prodotto scalare
double Scalare (double x[], double y[], int dim){
  double S = 0;
  for (int i = 0; i < dim; i++)
    S += x[i]*y[i];
  return S;
}


//Distanza tra vettori
double Distanza (double x[], double y[], int dim){
double D = 0, z[100];
  for (int i = 0; i < dim; i++)
    z[i] = x[i] - y[i];
      D = sqrt (Scalare(z, z, dim));
  return D;
}



//Angolo tra due vettori
double AngoloVett(double x[], double y[], int dim){
  double ang;
  for (int i = 0; i < 3; i++) {
    double ab = Scalare(x, y, 3);
    double na = sqrt (Scalare(x, x, 3));
    double nb = sqrt (Scalare(y, y, 3));
    double dist = Distanza (x, y, 3);
    ang = acos(double(ab/(na*nb)));
  }
  return ang;
}




Categories: