Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. var testtt = [[0], [200], [15]];
  2. var rrr = rotateECEF(this.heading_pitch_roll().x, this.heading_pitch_roll().y, this.heading_pitch_roll().z, testtt);
  3.  
  4. function rotateECEF(xangle, yangle, zangle, origCoords) {
  5. // Yaw correction
  6. var Bmat = ([[Math.cos(xangle), Math.sin(xangle), 0], [-Math.sin(xangle), Math.cos(xangle), 0], [0, 0, 1]]);
  7. // Pitch correction
  8. var Cmat = ([[Math.cos(yangle), 0, -Math.sin(yangle)], [0, 1, 0], [Math.sin(yangle), 0, Math.cos(yangle)]]);
  9. // Roll correction
  10. var Dmat = ([[1, 0, 0], [0, Math.cos(zangle), Math.sin(zangle)], [0, -Math.sin(zangle), Math.cos(zangle)]]);
  11.  
  12. return multiplyMatrices(multiplyMatrices(multiplyMatrices(Bmat, Cmat), Dmat), origCoords);
  13.  
  14. function multiplyMatrices(m1, m2) {
  15. var result = [];
  16. for (var i = 0; i < m1.length; i++) {
  17. result[i] = [];
  18. for (var j = 0; j < m2[0].length; j++) {
  19. var sum = 0;
  20. for (var k = 0; k < m1[0].length; k++) {
  21. sum += m1[i][k] * m2[k][j];
  22. }
  23. result[i][j] = sum;
  24. }
  25. }
  26. return result;
  27.  
  28. var aim = aimAngle(rrr, [0,0,0], 141.421);
  29.  
  30. function aimAngle(targetPos, targetVelo, bulletSpeed) {
  31. var rCrossVYaw = targetPos[0] * targetVelo[1] - targetPos[1] * targetVelo[0];
  32. var magRYaw = Math.sqrt(targetPos[0]*targetPos[0] + targetPos[1]*targetPos[1]);
  33. var rCrossVPitch = magRYaw * targetVelo[2] - targetPos[2] * Math.sqrt(targetVelo[0]*targetVelo[0] + targetVelo[1]*targetVelo[1]);
  34. var magRPitch = Math.sqrt(magRYaw*magRYaw + targetPos[2]*targetPos[2]);
  35. var angleAdjustYaw = Math.asin(rCrossVYaw / (bulletSpeed * magRYaw));
  36. var angleAdjustPitch = Math.asin(rCrossVPitch / (bulletSpeed * magRPitch));
  37.  
  38. return [-(angleAdjustYaw + Math.atan2(targetPos[1], targetPos[0])), -(angleAdjustPitch + Math.atan2(targetPos[2], magRYaw))];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement