Perpendicular.m 540 B

123456789101112131415161718192021222324
  1. % Perpendicular.m
  2. %
  3. % This function returns a vector perpendicular to the input vector.
  4. function [perpVec] = Perpendicular(vec)
  5. range = 0.5;
  6. vec = vec./norm(vec);
  7. if (vec(1) == 0)
  8. perpVec = [1 0 0]';
  9. return;
  10. elseif (vec(2) == 0)
  11. perpVec = [0 1 0]';
  12. return;
  13. elseif (vec(3) == 0)
  14. perpVec = [0 0 1]';
  15. return;
  16. end
  17. perpVec = zeros(3,1);
  18. perpVec(1) = rand - 0.5;
  19. perpVec(2) = rand - 0.5;
  20. perpVec(3) = -(vec(1)*perpVec(1) + vec(2)*perpVec(2))/ vec(3);
  21. end