Advertisement
Guest User

pointToRay3d

a guest
Aug 3rd, 2017
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1.     double x, y, z, e1, e2, e3, v1, v2, v3, d, xVectorFromEToP, dirVectorMagnitude,  vectorEPMagnitude, yVectorFromEToP, zVectorFromEToP, dotProductEpV, cpX, cpY, cpZ;
  2.     cin >> x >> y >> z >> e1 >> e2 >> e3 >> v1 >> v2 >> v3;
  3.  
  4.     xVectorFromEToP = x - e1;
  5.     yVectorFromEToP = y - e2;
  6.     zVectorFromEToP = z - e3;
  7.     dotProductEpV = ((xVectorFromEToP * v1) + (yVectorFromEToP * v2) + (zVectorFromEToP * v3));
  8.  
  9.     if (dotProductEpV >= 0) {
  10.         cpX = ((v2 * zVectorFromEToP) - (v3 * yVectorFromEToP));
  11.         cpY = ((v1 * zVectorFromEToP) - (v3 * xVectorFromEToP)) * -1;
  12.         cpZ = ((v1 * yVectorFromEToP) - (v2 * xVectorFromEToP));
  13.  
  14.         vectorEPMagnitude = sqrt(pow(cpX, 2) + pow(cpY, 2) + pow(cpZ, 2));
  15.         dirVectorMagnitude = sqrt(pow(v1, 2) + pow(v2, 2) + pow(v3, 2));
  16.  
  17.         d = vectorEPMagnitude / dirVectorMagnitude;
  18.         if (d < 1e-8)
  19.             cout << 1;
  20.     } else {
  21.         cout << 0;
  22.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement