double xp=vxp,yp=vyp,zp=vzp;
double alpha;
-//Calcular el ángulo que forman las rectas, sabiendo sus vectores directores.
+ //Calcular el ángulo que forman las rectas, sabiendo sus vectores directores.
double cosAlpha = ( ( (x-a)*(xp-a) )+( (y-b)*(yp-b) )+( (z-c)*(zp-c) ) )/sqrt((( (pow(x,2.0)-pow(a,2.0)) + (pow(y,2.0)-pow(b,2.0)) + (pow(z,2.0)-pow(c,2.0)) )*( (pow(xp,2.0)-pow(a,2.0)) + (pow(yp,2.0)-pow(b,2.0)) + (pow(zp,2.0)-pow(c,2.0)) ) ));
alpha = (180 * acos(fabs(cosAlpha)))/M_PI;
double xp=P4x,yp=P4y,zp=P4z;
double beta;
-//Calcular el ángulo que forman las rectas, sabiendo sus vectores directores.
+ //Calcular el ángulo que forman las rectas, sabiendo sus vectores directores.
double cosBeta = ( ( (x-a)*(xp-a) )+( (y-b)*(yp-b) )+( (z-c)*(zp-c) ) )/sqrt((( (pow(x,2.0)-pow(a,2.0)) + (pow(y,2.0)-pow(b,2.0)) + (pow(z,2.0)-pow(c,2.0)) )*( (pow(xp,2.0)-pow(a,2.0)) + (pow(yp,2.0)-pow(b,2.0)) + (pow(zp,2.0)-pow(c,2.0)) ) ));
beta = (180 * acos(fabs(cosBeta)))/M_PI;
return puntoCorte;
}
-//---------------------------------------------
-//Method template
-//---------------------------------------------
-/*
-void creaVtkHeartAngles::FunctionName(int& parameterA)
+vtkImageData* creaVtkHeartAngles::calculateAngleAlpha (vtkImageData* image, double Px, double Py, double Pz, double Vx, double Vy, double Vz, double Nx, double Ny, double Nz /*, double* pPlane*/)
{
- parameterA = 2 * parameterA;
- return;
+ unsigned char* pPix;
+ pPix = (unsigned char*)image->GetScalarPointer();
+
+ for(int i=0;i<1041;i=i+3){
+ int p1 = pPix[i];
+ int p2 = pPix[i+1];
+ int p3 = pPix[i+2];
+
+ double* vecProj;
+ vecProj = vectorProjection (Px, Py, Pz, Nx, Ny, Nz, p1, p2, p3);
+ double a, b;
+
+ //double* cutPoint;
+ //cutPoint = intersectionPlaneLine(pPlane[0], pPlane[1], pPlane[2], pPlane[3], pPlane[4], pPlane[5], pPlane[6], pPlane[7], pPlane[8], px1, py1, pz1, px2, py2, pz2);
+
+ a = alpha (p1, p2, p3,
+ p1, p2, p3, //?? es el vector?
+ vecProj[0], vecProj[1], vecProj[2]);
+
+ }
+
+
}
-*/
+
+vtkImageData* creaVtkHeartAngles::calculateAngleBeta (vtkImageData* image, double Px, double Py, double Pz, double Vx, double Vy, double Vz, double Nx, double Ny, double Nz /*, double* pPlane*/)
+{
+ unsigned char* pPix;
+ pPix = (unsigned char*)image->GetScalarPointer();
+
+ for(int i=0;i<1041;i=i+3){
+ int p1 = pPix[i];
+ int p2 = pPix[i+1];
+ int p3 = pPix[i+2];
+
+ double* vecProj;
+ vecProj = vectorProjection (Px, Py, Pz, Nx, Ny, Nz, p1, p2, p3);
+ double a, b;
+
+ //double* cutPoint;
+ //cutPoint = intersectionPlaneLine(pPlane[0], pPlane[1], pPlane[2], pPlane[3], pPlane[4], pPlane[5], pPlane[6], pPlane[7], pPlane[8], px1, py1, pz1, px2, py2, pz2);
+
+ b = beta (0, 0, 0,
+ p1, p2, p3, //?? es el vector?
+ vecProj[0], vecProj[1], vecProj[2]);
+
+ }
+
+
+}
+