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