MAL.CrossProduct

Previous  Next

 

ref_arr_out = MAL.CrossProduct( BYREF arr_out      AS ARRAY,

                                BYREF arr_in1      AS ARRAY,

                                BYREF arr_in2      AS ARRAY,

                               [BYVAL nPoint       AS INTEGER=ML_ALL],

                               [BYVAL nFrameOffset AS INTEGER=0] ) AS REFERENCE

 

ref_arr_out = MAL.CrossProduct( BYREF arr_out      AS ARRAY,

                                BYREF arr_in       AS ARRAY,

                                BYREF nPoint1      AS INTEGER,

                                BYVAL nPoint2      AS INTEGER,

                               [BYVAL nFrameOffset AS INTEGER=0] ) AS REFERENCE

 


 

Calculates the Cross Product of the 2 input vectors.  The input vectors and the output vector must be 3D.  Using the second syntax, the nPoint1 must be specified as an integer.  You can use the function INT( n ) to force a number to be of type INTEGER.  Note that the point ranges are not allowed using this syntax.

 

Example:

 

DIM arrP1(nFrames,nPoints,3) AS REAL

DIM arrP2(nFrames,nPoints,3) AS REAL

DIM arrCross(nFrames,3) AS REAL

DIM arrScalar(nFrames,1) AS REAL

 

arrP1(*,1,1) = 1

arrP1(*,1,2) = 1

arrP1(*,1,3) = 1

 

arrP1(*,2,1) = 1

arrP1(*,2,2) = 0

arrP1(*,2,3) = 0

 

arrP1(*,3,1) = 0

arrP1(*,3,2) = 1

arrP1(*,3,3) = 0

 

MAL.ScalarProduct( arrScalar, arrPoints, arrP1, 1 )

CALL PrintArray( REF( arrScalar ) )

 

MAL.CrossProduct( arrCross, arrP1, 2, 3 )

CALL PrintArray( REF( arrCross ) )