NX9+VS2012
#include <uf.h>
#include <uf_ui.h>
#include <uf_vec.h>
#include <uf_curve.h>
UF_initialize();
//创建直线1
UF_CURVE_line_t LineCoords1;
LineCoords1.start_point[0] = 0.0;
LineCoords1.start_point[1] = 0.0;
LineCoords1.start_point[2] = 0.0;
LineCoords1.end_point[0] = 0.0;
LineCoords1.end_point[1] = 100.0;
LineCoords1.end_point[2] = 0.0;
tag_t Line1Tag = NULL_TAG;
UF_CURVE_create_line(&LineCoords1, &Line1Tag);
//创建直线2
UF_CURVE_line_t LineCoords2;
LineCoords2.start_point[0] = 0.0;
LineCoords2.start_point[1] = 0.0;
LineCoords2.start_point[2] = 0.0;
LineCoords2.end_point[0] = 110.0;
LineCoords2.end_point[1] = 80.0;
LineCoords2.end_point[2] = 0.0;
tag_t Line2Tag = NULL_TAG;
UF_CURVE_create_line(&LineCoords2, &Line2Tag);
//直线1的向量方向,终点减起点
double Vec1[3] = {LineCoords1.end_point[0]-LineCoords1.start_point[0], LineCoords1.end_point[1]-LineCoords1.start_point[1], LineCoords1.end_point[2]-LineCoords1.start_point[2]};
//直线2的向量方向,终点减起点
double Vec2[3] = {LineCoords2.end_point[0]-LineCoords2.start_point[0], LineCoords2.end_point[1]-LineCoords2.start_point[1], LineCoords2.end_point[2]-LineCoords2.start_point[2]};
//求两个向量的叉乘
double CrossProduct[3];
UF_VEC3_cross(Vec1, Vec2, CrossProduct);
//已知两个向量求夹角(输出的是弧度)
double Angle;
UF_VEC3_angle_between(Vec1, Vec2, CrossProduct, &Angle);
//打印
char msg[256];
sprintf(msg, "%f",RADEG*Angle );//角度=180度/π*弧度,或者用宏定义RADEG*弧度
uc1601(msg, 1);
UF_terminate();
NX二次开发-UFUN已知两个向量方向求夹角角度UF_VEC3_angle_between
猜你喜欢
转载自blog.csdn.net/lu1287580078/article/details/89364555
今日推荐
周排行