UG二次开发中的矢量应用

您所在的位置:网站首页 ug批量导入点坐标 UG二次开发中的矢量应用

UG二次开发中的矢量应用

2023-07-11 05:45| 来源: 网络整理| 查看: 265

本文主要针对ug二次开发是的矢量进行说明和举例,并附有代码和运行图片,程序代码链接:

https://download.csdn.net/download/weixin_47753171/87847292

uf_vec矢量 uf_vec.h 

1、UF_VEC3_add求加

2、UF_VEC3_affine_comb矢量仿射

3、UF_VEC3_angle_between求两个向量之间的角度

4、UF_VEC3_ask_perpendicular返回一个垂直于输入向量的3D向量

5、UF_VEC3_convex_comb获得向量上点的坐标

6、UF_VEC3_copy 三维向量的复制

7、UF_VEC3_cross 叉乘

8、UF_VEC3_distance   两点之间的距离

9、UF_VEC3_distance_to_plane   点到面的距离

10、UF_VEC3_dot 点乘

11、UF_VEC3_is_equal 判断给定的向量在一定的公差内是否相等

12、UF_VEC3_is_parallel 判断是否平行

13、UF_VEC3_is_perpendicular 判断是否垂直

14、UF_VEC3_is_zero//判断是否为零向量

15、UF_VEC3_linear_comb等比缩放

16、UF_VEC3_mag求一个向量的实际大小

17、UF_VEC3_midpt 求向量中点的坐标

18、UF_VEC3_negate 反向量

19、UF_VEC3_scale 向量缩放

20、UF_VEC3_sub向量求差

21、UF_VEC3_triple点乘叉乘复合运算

22、UF_VEC3_unitize标准单位化

23、UF_VEC3_vec2三维转二维 UF_VEC3_vec4三维转四维

UF_initialize(); //矢量和 /* double vectorAB[3] = { 7.0,1.0,0.0 }; double vectorAC[3] = { 5.0,3.0,0.0 }; double vectorAD[3]; UF_VEC3_add(vectorAB, vectorAC, vectorAD); char msg[1000]; sprintf(msg, "%f %f %f", vectorAD[0], vectorAD[1], vectorAD[2]); uc1601(msg, 1);//12,4,0 */ /* //求线上点的坐标 double x = 0.5; //计算点的参数这里选择中点pnt_on_seg = (parameter pnt1) + ((1.0 - parameter) pnt2). double point1[3] = { 0.0,0.0,0.0 }; double point2[3] = { 10.0,5.0,0.0 }; double point3[3]; UF_VEC3_convex_comb(x, point1, point2, point3); char msg[1000]; sprintf(msg, "%f %f %f", point3[0], point3[1], point3[2]); uc1601(msg, 1); */ //利用向量叉乘(cross)求出点到直线的距离,已知A(3,4,0) B(10,6,0) C(8,3,0)求C点到AB的距离 //定义A,B,C三个点 double A[3] = { 3.0,4.0,0.0 }; double B[3] = { 10.0,6.0,0.0 }; double C[3] = { 8.0,3.0,0.0 }; //定义向量 double vectorAB[3] = { 7.0,2.0,0.0 }; double vectorAC[3] = {5.0,-1.0,0.0 }; double out_vector[3]; UF_VEC3_cross(vectorAB, vectorAC, out_vector); //out_vector可以用绝对值表示方法二(不建议使用) double a=fabs(out_vector[2]); //返回双精度参数x的绝对值 //转化数据类型 char msg1[256]; sprintf(msg1, "%f", a); uc1601(msg1, 1); /* 方法一 //求距离也相当于求叉乘结果,即平行四边形面积 double distance; UF_VEC3_distance_to_plane(out_vector, A, out_vector, 0.001, &distance); */ //求AB之间的距离 double distanceAB; UF_VEC3_distance(A, B, &distanceAB); //转化数据类型 char msg[256]; //sprintf(msg, "%f", distance / distanceAB);///方法一中 sprintf(msg, "%f", a / distanceAB);///方法二中 //打印距离 uc1601(msg, 1); UF_terminate();

矢量和运行结果

获得直线上任意点的坐标,本次验证的是中点

 

 计算点到直线的距离

方法一:

 

方法二:

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3