This command computes a planar angle between three points as diagrammed in example 1 below, or four points as diagrammed in example 2 below. The location of the points displayed corresponds to the combo boxes containing the signal.
It is possible to compute a 3D angle, or to project the vectors onto one of the principal planes. If the user wants to project onto an arbitrary plane, transform the points into another coordinate system then project onto one of the principal planes of this new coordinate system.
vec1 = vector from vertex 2 to vertex 1 vec2 = vector from vertex 2 to vertex 3 normal= vec1 cross vec2 angle= acos(vec1 dot vec2) If you select a 3D angle and do not specify a projection plane or a normal vector, the answer is simply the angle between these vectors. If you project the vertices onto a plane, the result is a 2D angle. in order to get 3 2D angles, you would need to create 3 different commands with each command projecting onto a different plane If you define the normal vector, you have the ability to specify the direction of the angle. The command can be edited via text editor and dialog. The details on the dialog and command are found below:
Given TARGETS labeled:
DISTAL1, VERTEX, and DISTAL2 and a segment
RFT Project the angle onto one of the Principal Planes of the RFT Segment Coordinate System.
! Compute the planar angle projected on the XY plane of the RFT segment from 3 points (DISTAL1, ! VERTEX, DISTAL2). The resulting signal is named TEST_ANGLE. The Right Hand rule is used and ! the angle is between -180 to 180 degrees. Compute_Planar_Angle /SIGNAL_TYPES=TARGET+TARGET+TARGET /SIGNAL_NAMES=DISTAL1+VERTEX+DISTAL2 /SIGNAL_FOLDER=PROCESSED+PROCESSED+PROCESSED /RESULT_NAME=TEST_ANGLE /RESULT_FOLDER=ANGLE /COMPUTE_3PT_ANGLE=TRUE ! /NORMALX= ! /NORMALY= ! /NORMALZ= /REFERENCE_SEGMENT=RFT ! /PROJECTION_PLANE=XY ! /USE_RIGHT_HAND_RULE=TRUE /USE_0_TO_360_DEGREES=FALSE ;
This example transforms the targets DISTAL1, VERTEX, DISTAL2 into the segment RFT coordinate system and then computes the planar angle TEST_ANGLE.
! First transform the locations into the segment coordinate system Transform_Data_Coordinate_System /SIGNAL_TYPES=TARGET+TARGET+TARGET /SIGNAL_NAMES=DISTAL1+VERTEX+DISTAL2 /SIGNAL_FOLDER=PROCESSED+PROCESSED+PROCESSED /FROM_SEGMENT_CS=LAB /TO_SEGMENT_CS=RFT /RESULT_TYPE=TARGET /RESULT_FOLDER=RFT /RESULT_SUFFIX= ; ! Compute the planar angle projected on the XY plane of the RFT segment. Compute_Planar_Angle /SIGNAL_TYPES=TARGET+TARGET+TARGET /SIGNAL_NAMES=DISTAL1+VERTEX+DISTAL2 /SIGNAL_FOLDER=RFT+RFT+RFT /RESULT_NAME=TEST_ANGLE /RESULT_FOLDER=ANGLE /COMPUTE_3PT_ANGLE=TRUE ! /NORMALX= ! /NORMALY= ! /NORMALZ= ! /REFERENCE_SEGMENT=LAB ! /PROJECTION_PLANE=XY ! /USE_RIGHT_HAND_RULE=TRUE /USE_0_TO_360_DEGREES=FALSE ;
Given TARGETS labeled:
PROX1, PROX2, DISTAL1, and DISTAL2 and a segment
RFT Project the angle onto one of the Principal Planes of the RFT Segment Coordinate System.
! Compute the planar angle projected on the YZ plane of the RFT segment from 4 points ! (PROX1,PROX2,DISTAL1,DISTAL2). The resulting signal is named TEST_ANGLE. The Right Hand rule ! is used and the angle is between -180 to 180 degrees. Compute_Planar_Angle /SIGNAL_TYPES=TARGET+TARGET+TARGET+TARGET /SIGNAL_NAMES=PROX1+PROX2+DISTAL1+DISTAL2 /SIGNAL_FOLDER=PROCESSED+PROCESSED+PROCESSED+PROCESSED /RESULT_NAME=TEST_ANGLE /RESULT_FOLDER=ANGLE /COMPUTE_3PT_ANGLE=FALSE ! /NORMALX= ! /NORMALY= ! /NORMALZ= ! /REFERENCE_SEGMENT=LAB /PROJECTION_PLANE=YZ ! /USE_RIGHT_HAND_RULE=TRUE /USE_0_TO_360_DEGREES=FALSE ;