UF_VEC2_add (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Performs a two dimensional vector addition and returns the vector
sum in vec_sum[2].
·µ»Ø
void
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_add
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double vec_sum [ 2 ]
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector #1 |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector #2 |
| double (ʵÊýÐÍ) | vec_sum [ 2 ] | Output£¨Êä³ö£© | The vector sum of vectors one and two vec_sum = vec1 + vec2 |
UF_VEC2_affine_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Performs a vector affine combination which consists of adding an
unscaled vector to a scaled vector. The first vector you input is vec[2],
which is unscaled. The second vector you input is the vec_to_scale[2],
which is scaled by the input argument scale. The resultant vector is
output to vec_comb[2].
·µ»Ø
Void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_affine_comb
(
const double vec [ 2 ] ,
double scale,
const double vec_to_scale [ 2 ] ,
double vec_comb [ 2 ]
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Unscaled vector |
| double (ʵÊýÐÍ) | scale | Input£¨ÊäÈ룩 | Scale to apply to vec_to_scale[2] |
| const double | vec_to_scale [ 2 ] | Input£¨ÊäÈ룩 | The second two dimensional vector which is scaled. |
| double (ʵÊýÐÍ) | vec_comb [ 2 ] | Output£¨Êä³ö£© | Vector sum of unscaled vector and scaled vector where vec_comb = vec + (scale vec_to_scale) |
UF_VEC2_ask_perpendicular (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Returns a 2D vector that is perpendicular to the input vector
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_ask_perpendicular
(
const double vec1 [ 2 ] ,
double vec_perp [ 2 ]
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | 2D vector |
| double (ʵÊýÐÍ) | vec_perp [ 2 ] | Output£¨Êä³ö£© | 2D vector |
UF_VEC2_components (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the scale factors of a linear combination of two vectors that
form a third vector. The vector combination is equal to the sum of the
two scaled vectors ( i.e., vec_comb = scale1 vec1 + scale2 + vec2).
·µ»Ø
0 = Scale factors can be calculated
1 = Input vectors are parallel
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
int UF_VEC2_components
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
const double vec_comb [ 2 ] ,
double tolerance,
double * scale1,
double * scale2
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | First vector of linear combination |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Second vector of linear combination |
| const double | vec_comb [ 2 ] | Input£¨ÊäÈ룩 | Linear combination of vec1 and vec2 |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking whether vec1 and vec2 are parallel |
| double * (ʵÊýÐÍÖ¸Õë) | scale1 | Output£¨Êä³ö£© | Scale factor of vec1 in linear combination |
| double * (ʵÊýÐÍÖ¸Õë) | scale2 | Output£¨Êä³ö£© | Scale factor of vec2 in linear combination |
UF_VEC2_convex_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the position of a point between the two end points of a line
segment. The point on the line segment is defined by:
pnt_on_seg = (parameter pnt1) + ((1.0 - parameter) pnt2).
»·¾³
ÄÚ²¿ºÍÍⲿ
·µ»Ø
Void.
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_convex_comb
(
double parameter,
const double pnt1 [ 2 ] ,
const double pnt2 [ 2 ] ,
double pnt_on_seg [ 2 ]
)
| double (ʵÊýÐÍ) | parameter | Input£¨ÊäÈ룩 | Parameter of point to calculate |
| const double | pnt1 [ 2 ] | Input£¨ÊäÈ룩 | First end point of line segment |
| const double | pnt2 [ 2 ] | Input£¨ÊäÈ룩 | Second end point of line segment |
| double (ʵÊýÐÍ) | pnt_on_seg [ 2 ] | Output£¨Êä³ö£© | Point on line segment |
UF_VEC2_copy (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Copies the vector coordinates from a source vector to a destination
vector (vec_dst = vec_src).
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_copy
(
const double vec_src [ 2 ] ,
double vec_dst [ 2 ]
)
| const double | vec_src [ 2 ] | Input£¨ÊäÈ룩 | Source vector |
| double (ʵÊýÐÍ) | vec_dst [ 2 ] | Output£¨Êä³ö£© | Destination vector |
UF_VEC2_cross (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the cross product of two vectors.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_cross
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double * cross_product
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double * (ʵÊýÐÍÖ¸Õë) | cross_product | Output£¨Êä³ö£© | The cross product of vec1 and vec2 cross_product = vec1 x vec2 |
UF_VEC2_distance (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the distance between two points.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_distance
(
const double pnt1 [ 2 ] ,
const double pnt2 [ 2 ] ,
double * distance
)
| const double | pnt1 [ 2 ] | Input£¨ÊäÈ룩 | Point 1 |
| const double | pnt2 [ 2 ] | Input£¨ÊäÈ룩 | Point 2 |
| double * (ʵÊýÐÍÖ¸Õë) | distance | Output£¨Êä³ö£© | The distance between pnt1 and pnt2 (distance = ||pnt1 - pnt2||) |
UF_VEC2_dot (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the dot product of vec1 and vec2.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_dot
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double * dot_product
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double * (ʵÊýÐÍÖ¸Õë) | dot_product | Output£¨Êä³ö£© | The dot product of vec1 and vec2 dot_product = vec1 (dot) vec2 |
UF_VEC2_is_equal (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if two vectors are equal within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_is_equal
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double tolerance,
int * is_equal
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_equal | Output£¨Êä³ö£© | 0 = Vectors are not equal 1 = Vectors are equal |
UF_VEC2_is_parallel (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determine if vectors are parallel within an input tolerance
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_is_parallel
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double tolerance,
int * is_parallel
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | 2D vector |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | 2D vector |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | tolerance |
| int * (ÕûÊýÐÍÖ¸Õë) | is_parallel | Output£¨Êä³ö£© | = 0 Vectors are not parallel = 1 Vectors are parallel |
UF_VEC2_is_perpendicular (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determine if vectors are perpendicular within an input tolerance
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_is_perpendicular
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double tolerance,
int * is_perp
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | 2D vector |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | 2D vector |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | tolerance |
| int * (ÕûÊýÐÍÖ¸Õë) | is_perp | Output£¨Êä³ö£© | = 0 Vectors are not perpendicular = 1 Vectors are perpendicular |
UF_VEC2_is_zero (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if a vector is zero within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_is_zero
(
const double vec [ 2 ] ,
double tolerance,
int * is_zero
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector to test |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_zero | Output£¨Êä³ö£© | 0 = Vectors is not zero 1 = Vectors is zero |
UF_VEC2_linear_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the vector linear combination of two vectors with the
specified scale values.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_linear_comb
(
double scale1,
const double vec1 [ 2 ] ,
double scale2,
const double vec2 [ 2 ] ,
double vec_comb [ 2 ]
)
| double (ʵÊýÐÍ) | scale1 | Input£¨ÊäÈ룩 | Scale value for vector 1 |
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector 1 |
| double (ʵÊýÐÍ) | scale2 | Input£¨ÊäÈ룩 | scale for vector 2 |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double (ʵÊýÐÍ) | vec_comb [ 2 ] | Output£¨Êä³ö£© | Vector linear combination vec_comb = (scale vec1) + (scale2 vec2) |
UF_VEC2_mag (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the magnitude of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_mag
(
const double vec [ 2 ] ,
double * magnitude
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector whose magnitude is required |
| double * (ʵÊýÐÍÖ¸Õë) | magnitude | Output£¨Êä³ö£© | Magnitude of vector magnitude = ||vec|| |
UF_VEC2_midpt (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the coordinates of the mid-point on a line segment.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_midpt
(
const double pnt1 [ 2 ] ,
const double pnt2 [ 2 ] ,
double mid_pnt [ 2 ]
)
| const double | pnt1 [ 2 ] | Input£¨ÊäÈ룩 | End Point #1 of line segment |
| const double | pnt2 [ 2 ] | Input£¨ÊäÈ룩 | End Point #2 of line segment |
| double (ʵÊýÐÍ) | mid_pnt [ 2 ] | Output£¨Êä³ö£© | Mid-point of line segment mid_pnt = (0.5 pnt1) + (0.5 pnt2) |
UF_VEC2_negate (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the negative of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_negate
(
const double vec [ 2 ] ,
double negated_vec [ 2 ]
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector to negate |
| double (ʵÊýÐÍ) | negated_vec [ 2 ] | Output£¨Êä³ö£© | Negated vector negated_vec = (-1.0) x vec |
UF_VEC2_rotate (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Rotates a 2D vector about a line perpendicular to the plane of the
vector through the vector origin.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_rotate
(
const double vec [ 2 ] ,
double angle,
double rotated_vec [ 2 ]
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector to rotate |
| double (ʵÊýÐÍ) | angle | Input£¨ÊäÈ룩 | Angle to rotate through (in radians) |
| double (ʵÊýÐÍ) | rotated_vec [ 2 ] | Output£¨Êä³ö£© | Rotated vector |
UF_VEC2_scale (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Scales the coordinates of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_scale
(
double scale,
const double vec [ 2 ] ,
double scaled_vec [ 2 ]
)
| double (ʵÊýÐÍ) | scale | Input£¨ÊäÈ룩 | Scale factor |
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector to scale |
| double (ʵÊýÐÍ) | scaled_vec [ 2 ] | Output£¨Êä³ö£© | scaled vector scaled_vec = (scale x vec) |
UF_VEC2_sub (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Subtracts one 2D vector from another.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_sub
(
const double vec1 [ 2 ] ,
const double vec2 [ 2 ] ,
double vec_diff [ 2 ]
)
| const double | vec1 [ 2 ] | Input£¨ÊäÈ룩 | Vector to subtract from |
| const double | vec2 [ 2 ] | Input£¨ÊäÈ룩 | Vector to subtract |
| double (ʵÊýÐÍ) | vec_diff [ 2 ] | Output£¨Êä³ö£© | Vector difference vec_diff = vec1 - vec2 |
UF_VEC2_unitize (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Unitizes a 2D vector.
·µ»Ø
0 = Success (unit vector can be calculated)
1 = input vector is zero
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
int UF_VEC2_unitize
(
const double vec [ 2 ] ,
double tolerance,
double * magnitude,
double unit_vec [ 2 ]
)
| const double | vec [ 2 ] | Input£¨ÊäÈ룩 | Vector to unitize |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| double * (ʵÊýÐÍÖ¸Õë) | magnitude | Output£¨Êä³ö£© | Vector magnitude = øvecø |
| double (ʵÊýÐÍ) | unit_vec [ 2 ] | Output£¨Êä³ö£© | Unitized vector = vec/øvecø |
UF_VEC2_vec3 (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 2D vector to a 3D vector. Sets the Z-coordinate to zero.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC2_vec3
(
const double vec_2D [ 2 ] ,
double vec_3D [ 3 ]
)
| const double | vec_2D [ 2 ] | Input£¨ÊäÈ룩 | 2D vector to convert to 3D |
| double (ʵÊýÐÍ) | vec_3D [ 3 ] | Output£¨Êä³ö£© | 3D vector |
UF_VEC3_add (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Performs a three dimensional vector addition and returns the vector
sum in vec_sum[3].
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_add
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double vec_sum [ 3 ]
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | The first three dimensional vector |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | The second three dimensional vector |
| double (ʵÊýÐÍ) | vec_sum [ 3 ] | Output£¨Êä³ö£© | The vector sum of vectors one and two vec_sum = vec1 + vec2 |
UF_VEC3_affine_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Performs a vector affine combination which consists of adding an
unscaled vector to a scaled vector. The first vector you input is vec[3],
which is unscaled. The second vector you input is the vec_to_scale[3]
which is scaled by the input argument scale. The resultant vector is
output to vec_comb[3].
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_affine_comb
(
const double vec [ 3 ] ,
double scale,
const double vec_to_scale [ 3 ] ,
double vec_comb [ 3 ]
)
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Unscaled vector |
| double (ʵÊýÐÍ) | scale | Input£¨ÊäÈ룩 | Scale to apply to vec_to_scale[3] |
| const double | vec_to_scale [ 3 ] | Input£¨ÊäÈ룩 | The second three dimensional vector which is scaled. |
| double (ʵÊýÐÍ) | vec_comb [ 3 ] | Output£¨Êä³ö£© | Vector sum of unscaled vector and scaled vector where vec_comb = vec + (scale vec_to_scale) |
UF_VEC3_angle_between (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the angle between two vectors using a third vector to
determine the direction. The third vector is one that is perpendicular
to both the vec_from and vec_to vectors. For example, if the two
vectors lie in the x-y plane, then the third vector would be parallel to
the z-axis.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_angle_between
(
const double vec_from [ 3 ] ,
const double vec_to [ 3 ] ,
const double vec_ccw [ 3 ] ,
double * angle
)
| const double | vec_from [ 3 ] | Input£¨ÊäÈ룩 | Vector to calculate angle from |
| const double | vec_to [ 3 ] | Input£¨ÊäÈ룩 | Vector to calculate angle to |
| const double | vec_ccw [ 3 ] | Input£¨ÊäÈ룩 | Vector to define counter-clockwise orientation |
| double * (ʵÊýÐÍÖ¸Õë) | angle | Output£¨Êä³ö£© | Angle between vec_from and vec_to using vec_ccw to determine positive orientation. The angle is in radians and 0.0 <= (angle) < 2 PI. |
UF_VEC3_ask_perpendicular (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Returns a 3D vector that is perpendicular to the input vector
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_ask_perpendicular
(
const double vec1 [ 3 ] ,
double vec_perp [ 3 ]
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | 3D vector |
| double (ʵÊýÐÍ) | vec_perp [ 3 ] | Output£¨Êä³ö£© | 3D vector perpendicular to the first vector. |
UF_VEC3_convex_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the position of a point between the two end points of a line
segment. The point on the line segment is defined by:
pnt_on_seg = (parameter pnt1) + ((1.0 - parameter) pnt2).
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_convex_comb
(
double parameter,
const double pnt1 [ 3 ] ,
const double pnt2 [ 3 ] ,
double pnt_on_seg [ 3 ]
)
| double (ʵÊýÐÍ) | parameter | Input£¨ÊäÈ룩 | Parameter of point to calculate |
| const double | pnt1 [ 3 ] | Input£¨ÊäÈ룩 | First end point of line segment |
| const double | pnt2 [ 3 ] | Input£¨ÊäÈ룩 | Second end point of line segment |
| double (ʵÊýÐÍ) | pnt_on_seg [ 3 ] | Output£¨Êä³ö£© | Point on line segment |
UF_VEC3_copy (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Copies the vector coordinates from a source vector to a destination
vector (vec_dst = vec_src).
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_copy
(
const double vec_src [ 3 ] ,
double vec_dst [ 3 ]
)
| const double | vec_src [ 3 ] | Input£¨ÊäÈ룩 | Source vector |
| double (ʵÊýÐÍ) | vec_dst [ 3 ] | Output£¨Êä³ö£© | Destination vector |
UF_VEC3_cross (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the cross product of two vectors.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_cross
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double cross_product [ 3 ]
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double (ʵÊýÐÍ) | cross_product [ 3 ] | Output£¨Êä³ö£© | The cross product of vec1 and vec2 cross_product = vec1 vec2 |
UF_VEC3_distance (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the distance between two points.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_distance
(
const double pnt1 [ 3 ] ,
const double pnt2 [ 3 ] ,
double * distance
)
| const double | pnt1 [ 3 ] | Input£¨ÊäÈ룩 | Point 1 |
| const double | pnt2 [ 3 ] | Input£¨ÊäÈ룩 | Point 2 |
| double * (ʵÊýÐÍÖ¸Õë) | distance | Output£¨Êä³ö£© | The distance between pnt1 and pnt2 (distance = ||pnt1 - pnt2||) |
UF_VEC3_distance_to_plane (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the normal distance from a point to a plane.
·µ»Ø
0 = Success (distance can be calculated)
1 = The plane normal is zero
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
int UF_VEC3_distance_to_plane
(
const double pnt1 [ 3 ] ,
const double pnt_on_plane [ 3 ] ,
const double plane_normal [ 3 ] ,
double tolerance,
double * distance
)
| const double | pnt1 [ 3 ] | Input£¨ÊäÈ룩 | Point to calculate distance from |
| const double | pnt_on_plane [ 3 ] | Input£¨ÊäÈ룩 | Point located on the plane |
| const double | plane_normal [ 3 ] | Input£¨ÊäÈ룩 | Plane normal |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| double * (ʵÊýÐÍÖ¸Õë) | distance | Output£¨Êä³ö£© | The normal distance from the point to the plane |
UF_VEC3_dot (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the dot product of vec1 and vec2.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_dot
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double * dot_product
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double * (ʵÊýÐÍÖ¸Õë) | dot_product | Output£¨Êä³ö£© | The dot product of vec1 and vec2 dot_product = vec1 (dot) vec2 |
UF_VEC3_is_equal (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if two vectors are equal within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_is_equal
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double tolerance,
int * is_equal
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector 1 |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_equal | Output£¨Êä³ö£© | 0 = Vectors are not equal 1 = Vectors are equal |
UF_VEC3_is_parallel (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determine if vectors are parallel within an input tolerance
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_is_parallel
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double tolerance,
int * is_parallel
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | 3D vector |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | 3D vector |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | tolerance |
| int * (ÕûÊýÐÍÖ¸Õë) | is_parallel | Output£¨Êä³ö£© | = 0 Vectors are not parallel = 1 Vectors are parallel |
UF_VEC3_is_perpendicular (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determine if vectors are perpendicular an input tolerance
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_is_perpendicular
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double tolerance,
int * is_perp
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | 3D vector |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | 3D vector |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | tolerance |
| int * (ÕûÊýÐÍÖ¸Õë) | is_perp | Output£¨Êä³ö£© | = 0 Vectors are not perpendicular = 1 Vectors are perpendicular |
UF_VEC3_is_zero (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if a vector is zero within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_is_zero
(
const double vec [ 3 ] ,
double tolerance,
int * is_zero
)
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Vector to test |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_zero | Output£¨Êä³ö£© | 0 = Vectors is not zero 1 = Vectors is zero |
UF_VEC3_linear_comb (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the vector linear combination of two vectors with the
specified scale values.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_linear_comb
(
double scale1,
const double vec1 [ 3 ] ,
double scale2,
const double vec2 [ 3 ] ,
double vec_comb [ 3 ]
)
| double (ʵÊýÐÍ) | scale1 | Input£¨ÊäÈ룩 | Scale value for vector 1 |
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector 1 |
| double (ʵÊýÐÍ) | scale2 | Input£¨ÊäÈ룩 | scale for vector 2 |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector 2 |
| double (ʵÊýÐÍ) | vec_comb [ 3 ] | Output£¨Êä³ö£© | Vector linear combination vec_comb = (scale vec1) + (scale2 vec2) |
UF_VEC3_mag (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the magnitude of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_mag
(
const double vec [ 3 ] ,
double * magnitude
)
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Vector whose magnitude is required |
| double * (ʵÊýÐÍÖ¸Õë) | magnitude | Output£¨Êä³ö£© | Magnitude of vector magnitude = ||vec|| |
UF_VEC3_midpt (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the coordinates of the mid-point on a line segment.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_midpt
(
const double pnt1 [ 3 ] ,
const double pnt2 [ 3 ] ,
double mid_pnt [ 3 ]
)
| const double | pnt1 [ 3 ] | Input£¨ÊäÈ룩 | End Point #1 of line segment |
| const double | pnt2 [ 3 ] | Input£¨ÊäÈ룩 | End Point #2 of line segment |
| double (ʵÊýÐÍ) | mid_pnt [ 3 ] | Output£¨Êä³ö£© | Mid-point of line segment mid_pnt = (0.5 pnt1) + (0.5 pnt2) |
UF_VEC3_negate (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the negative of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_negate
(
const double vec [ 3 ] ,
double negated_vec [ 3 ]
)
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Vector to negate |
| double (ʵÊýÐÍ) | negated_vec [ 3 ] | Output£¨Êä³ö£© | Negated vector negated_vec = (-1.0) vec |
UF_VEC3_scale (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Scales the coordinates of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_scale
(
double scale,
const double vec [ 3 ] ,
double scaled_vec [ 3 ]
)
| double (ʵÊýÐÍ) | scale | Input£¨ÊäÈ룩 | Scale factor |
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Vector to scale |
| double (ʵÊýÐÍ) | scaled_vec [ 3 ] | Output£¨Êä³ö£© | scaled vector scaled_vec = (scale x vec) |
UF_VEC3_sub (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Subtracts one vector from another.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_sub
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
double vec_diff [ 3 ]
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector to subtract from |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector to subtract |
| double (ʵÊýÐÍ) | vec_diff [ 3 ] | Output£¨Êä³ö£© | Vector difference vec_diff = vec1 - vec2 |
UF_VEC3_triple (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Calculates the triple scalar product of three vectors.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_triple
(
const double vec1 [ 3 ] ,
const double vec2 [ 3 ] ,
const double vec3 [ 3 ] ,
double * triple_product
)
| const double | vec1 [ 3 ] | Input£¨ÊäÈ룩 | Vector #1 |
| const double | vec2 [ 3 ] | Input£¨ÊäÈ룩 | Vector #2 |
| const double | vec3 [ 3 ] | Input£¨ÊäÈ룩 | Vector #3 |
| double * (ʵÊýÐÍÖ¸Õë) | triple_product | Output£¨Êä³ö£© | The triple scalar product triple_product = vec1 (dot) (vec2 x vec3) |
UF_VEC3_unitize (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Unitizes a vector.
·µ»Ø
0 = Success (unit vector can be calculated)
1 = input vector is zero
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
int UF_VEC3_unitize
(
const double vec [ 3 ] ,
double tolerance,
double * magnitude,
double unit_vec [ 3 ]
)
| const double | vec [ 3 ] | Input£¨ÊäÈ룩 | Vector to unitize |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| double * (ʵÊýÐÍÖ¸Õë) | magnitude | Output£¨Êä³ö£© | Vector magnitude = ||vec|| |
| double (ʵÊýÐÍ) | unit_vec [ 3 ] | Output£¨Êä³ö£© | Unitized vector = vec/||vec|| |
UF_VEC3_vec2 (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 3D vector to a 2D vector. Strips the Z-coordinate of the
3D vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_vec2
(
const double vec_3D [ 3 ] ,
double vec_2D [ 2 ]
)
| const double | vec_3D [ 3 ] | Input£¨ÊäÈ룩 | 3D vector to convert to 2D |
| double (ʵÊýÐÍ) | vec_2D [ 2 ] | Output£¨Êä³ö£© | 2D vector |
UF_VEC3_vec4 (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 3D vector to a 4D homogeneous vector with a weight of
1.0.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_vec4
(
const double vec_3D [ 3 ] ,
double vec_4D [ 4 ]
)
| const double | vec_3D [ 3 ] | Input£¨ÊäÈ룩 | 3D vector to convert to 4D |
| double (ʵÊýÐÍ) | vec_4D [ 4 ] | Output£¨Êä³ö£© | 4D vector |
UF_VEC3_vec4_homogen (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 3D vector to a 4D homogeneous vector with the given
weight. The 3D coordinates are multiplied by the specified weight. If
the 3D coordinates are (x,y,z) and the weight = h, then the 4D
coordinates would be (hx,hy,hz,h).
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC3_vec4_homogen
(
const double vec_3D [ 3 ] ,
double weight,
double vec_4D [ 4 ]
)
| const double | vec_3D [ 3 ] | Input£¨ÊäÈ룩 | 3D vector to convert |
| double (ʵÊýÐÍ) | weight | Input£¨ÊäÈ룩 | Weight to be used |
| double (ʵÊýÐÍ) | vec_4D [ 4 ] | Output£¨Êä³ö£© | 4D homogeneous vector |
UF_VEC4_copy (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Copies the vector coordinates from a source vector to a destination
vector (vec_dst = vec_src).
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_copy
(
const double vec_src [ 4 ] ,
double vec_dst [ 4 ]
)
| const double | vec_src [ 4 ] | Input£¨ÊäÈ룩 | Source vector |
| double (ʵÊýÐÍ) | vec_dst [ 4 ] | Output£¨Êä³ö£© | Destination vector |
UF_VEC4_is_equal (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if two vectors are equal within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_is_equal
(
const double vec1 [ 4 ] ,
const double vec2 [ 4 ] ,
double tolerance,
int * is_equal
)
| const double | vec1 [ 4 ] | Input£¨ÊäÈ룩 | Vector #1 |
| const double | vec2 [ 4 ] | Input£¨ÊäÈ룩 | Vector #2 |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_equal | Output£¨Êä³ö£© | 0 = Vectors are not equal 1 = Vectors are equal |
UF_VEC4_is_zero (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Determines if a vector is zero within the specified tolerance.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_is_zero
(
const double vec [ 4 ] ,
double tolerance,
int * is_zero
)
| const double | vec [ 4 ] | Input£¨ÊäÈ룩 | Vector to test |
| double (ʵÊýÐÍ) | tolerance | Input£¨ÊäÈ룩 | Tolerance value to use for checking |
| int * (ÕûÊýÐÍÖ¸Õë) | is_zero | Output£¨Êä³ö£© | 0 = Vector is not zero 1 = Vector is zero |
UF_VEC4_scale (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Scales the coordinates of a vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_scale
(
double scale,
const double vec [ 4 ] ,
double scaled_vec [ 4 ]
)
| double (ʵÊýÐÍ) | scale | Input£¨ÊäÈ룩 | Scale factor |
| const double | vec [ 4 ] | Input£¨ÊäÈ룩 | Vector to scale |
| double (ʵÊýÐÍ) | scaled_vec [ 4 ] | Output£¨Êä³ö£© | scaled vector scaled_vec = (scale x vec) |
UF_VEC4_vec3 (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 4D vector to a 3D vector by stripping the weight of the 4D
vector.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_vec3
(
const double vec_4D [ 4 ] ,
double vec_3D [ 3 ]
)
| const double | vec_4D [ 4 ] | Input£¨ÊäÈ룩 | 4D vector to convert to 3D |
| double (ʵÊýÐÍ) | vec_3D [ 3 ] | Output£¨Êä³ö£© | 3D vector |
UF_VEC4_vec3_homogen (²é¿´Ô´´úÂë)
¶¨ÒåÔÚ: uf_vec.h
¸ÅÊö
Converts a 4D homogeneous vector to a 3D vector by dividing the 4D
coordinates by the weight.
·µ»Ø
void.
»·¾³
ÄÚ²¿ºÍÍⲿ
ÐèÒªÐí¿ÉÖ¤£¨S£©
gateway £¨UGÈë¿Ú»ù±¾Ä£¿é£¬GatewayÊÇËùÓÐÆäËüUuigraphicsÄ£¿éµÄÒ»¸ö±ØÒªÌõ¼þ£©
void UF_VEC4_vec3_homogen
(
const double vec_4D [ 4 ] ,
double vec_3D [ 3 ]
)
| const double | vec_4D [ 4 ] | Input£¨ÊäÈ룩 | 4D vector to convert |
| double (ʵÊýÐÍ) | vec_3D [ 3 ] | Output£¨Êä³ö£© | 3D vector |