Plot a unit vector in MATLAB, given its starting point and the orientation about 3 axes

I have a point [x y z] and the Euler orientation angles [r p y]. How can I plot a unit vector in MATLAB starting from [x y z] in the orientation of [r p y] ?

3 Comments

If you're using a polarplot() you simply supply the angle and magnitude
polarplot(theta, rho) %theta is in radians
If you're plotting that in cartesian coordinates, convert (theta,rho) to (x,y) using,
[x,y] = pol2cart(theta,rho)
Check out the documentation for pol2cart for input requirements.
Thanks Adam, but my requirement is to use Euler angles to plot a unit vector starting at the specified point. And my goal is to get the plot in 3D.

Sign in to comment.

 Accepted Answer

At last found a very simple solution.
Converted the euler angles to rotation matrix and rotated to unit vector.

2 Comments

Congrats! If you provide a simple demo or example in your answer it will be more useful to people who may come across this post in the future.
Sure ...
Lets say we want to visualize a vector at a given point [0 0 10] and orientation [0 0 50].
  1. Convert the orientation angles to radians using deg2rad function.
  2. Find the rotational matrix using eul2rotm function in the sequence (eg: XYZ) required.
  3. Initialize a unit vector along x-axis as [1 0 0].
  4. Rotate the unit vector using the rotational matrix obtained in step 2.
  5. Plot the newly formed directional vector usingquiver3 function.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!