vsep_c |

Table of contents## Procedurevsep_c ( Angular separation of vectors, 3 dimensions ) SpiceDouble vsep_c ( ConstSpiceDouble v1 [3], ConstSpiceDouble v2 [3] ) ## AbstractFind the separation angle in radians between two double precision, 3-dimensional vectors. This angle is defined as zero if either vector is zero. ## Required_ReadingNone. ## KeywordsANGLE VECTOR ## Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- v1 I First vector. v2 I Second vector. The function returns the angle between `v1' and `v2' expressed in radians. ## Detailed_Inputv1, v2 are two double precision 3-dimensional vectors. Either `v1' or `v2', or both, may be the zero vector. An implicit assumption exists that `v1' and `v2' are specified in the same reference frame. If this is not the case, the numerical result of this routine has no meaning. ## Detailed_OutputThe function returns the angle between `v1' and `v2' expressed in radians. ## ParametersNone. ## ExceptionsError free. ## FilesNone. ## ParticularsIn the plane, it is a simple matter to calculate the angle between two vectors once the two vectors have been made to be unit length. Then, since the two vectors form the two equal sides of an isosceles triangle, the length of the third side is given by the expression length = 2.0 * sin ( ## ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Define two sets of 3-dimensional vectors and compute the angular separation between each vector in first set and the corresponding vector in the second set. Example code begins here. /. Program vsep_ex1 ./ #include <stdio.h> #include "SpiceUsr.h" int main( ) { /. Local parameters. ./ #define SETSIZ 3 /. Local variables. ./ SpiceInt i; /. Define the two vector sets. ./ SpiceDouble v1 [SETSIZ][3] = { {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {3.0, 0.0, 0.0} }; SpiceDouble v2 [SETSIZ][3] = { { 1.0, 0.0, 0.0}, { 0.0, 1.0, 0.0}, {-5.0, 0.0, 0.0} }; /. Calculate the angular separation between each pair of vectors. ./ for ( i = 0; i < SETSIZ; i++ ) { printf( "First vector : %5.1f %5.1f %5.1f\n", v1[i][0], v1[i][1], v1[i][2] ); printf( "Second vector : %5.1f %5.1f %5.1f\n", v2[i][0], v2[i][1], v2[i][2] ); printf( "Angular separation (rad): %14.10f\n", ## Restrictions1) The user is required to insure that the input vectors will not cause floating point overflow upon calculation of the vector dot product since no error detection or correction code is implemented. In practice, this is not a significant restriction. ## Literature_ReferencesNone. ## Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) K.R. Gehringer (JPL) W.M. Owen (JPL) W.L. Taber (JPL) E.D. Wright (JPL) ## Version-CSPICE Version 1.1.2, 10-AUG-2021 (JDR) Edited the header to comply with NAIF standard. Added complete code example based on existing example. -CSPICE Version 1.1.1, 17-APR-2006 (EDW) Typo correction to the value of PI/2 in the -Examples section, 1.571 instead of 1.71. -CSPICE Version 1.1.0, 22-OCT-1998 (NJB) Made input vectors const. -CSPICE Version 1.0.0, 08-FEB-1998 (EDW) (KRG) (WMO) (WLT) ## Index_Entriesangular separation of 3-dimensional vectors |

Fri Dec 31 18:41:15 2021