Path: Math/Geometry
% Find valid range of rotation angles that satisfy separation constraints
   If we rotate "u1" about the "axis" vector by "phi", it becomes "u1R".
   The constraint is to keep the rotated "u1R" vector away from the "u2"
   vector by a specified angle "minSep":
     acos( Dot( u1R, u2 ) ) >= minSep
   The "angles" output is the range of "phi" angles that satisfy the
   constraint. If empty, then no rotation will satisfy the constraint.
   If this function is called with u1, u2, minSep having multiple columns,
   then it calls itself recursively, merging the new angle range output
   with the previous merge each time.
   
   Type FindValidAngleRange for a demo.
--------------------------------------------------------------------------
   Form:
   angles = FindValidAngleRange( axis, u1, u2, minSep );
--------------------------------------------------------------------------
   ------
   Inputs
   ------
   axis       (3,1)    Axis of rotation
   u1         (3,N)    Vector u1. Constraint is:
                         acos( Dot(u1,u2) ) >= minSep
   u2         (3,N)    Vector u2.
   minSep     (1,N)    Keep angle between u1 and u2 greater than minSep.
   -------
   Outputs
   -------
   angles     (1,2)    Range of valid rotation angles. If empty, the
                       constraint cannot be satisfied for any rotation.
--------------------------------------------------------------------------
Common: CommonData/SwooshWatermark Common: General/CellToMat Common: General/MatToCell Common: General/Watermark Common: Graphics/NewFig Common: Graphics/Plot2D Common: Graphics/PlotAngleRange Common: Graphics/PltStyle Math: Geometry/InsideAngleRange Math: Geometry/MergeAngleRange Math: Linear/Cross Math: Linear/Unit Math: Trigonometry/LinearSinCosToQuadCos Math: Trigonometry/SolveLinearSinCos
Back to the Math Module page