FindValidAngleRange:
--------------------------------------------------------------------------
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.
Since version 11.
--------------------------------------------------------------------------
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.
--------------------------------------------------------------------------
Children:
Common: Graphics/Plot2D
Math: Geometry/InsideAngleRange
Math: Geometry/MergeAngleRange
Math: Linear/Cross
Math: Linear/Unit
Math: Trigonometry/SolveLinearSinCos