请选择 进入手机版 | 继续访问电脑版

NX二次开发

 找回密码
 立即注册
查看: 400|回复: 1

[函数说明] UF_MODL_ask_vector_angle获取两向量角度函数

[复制链接]

558

主题

755

帖子

3526

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3526
发表于 2018-1-21 18:54:27 | 显示全部楼层 |阅读模式
UF_MODL_ask_vector_angle
功能:获取两个向量的角度的最大最小值(弧度值)
此函数往往用来求两条直线的角度。
唐康林原创例子如下:
以下是,传入两直线的标识,返回两直线的角度的最大最小值(弧度值)
  1. void GetTwoLineAngle(tag_t line1Tag, tag_t line2Tag, double *smallAngle, double *largeAngle)
  2. {
  3.         UF_CURVE_line_t line1Coords;
  4.         UF_CURVE_line_t line2Coords;
  5.         UF_CURVE_ask_line_data(line1Tag, &line1Coords);
  6.         UF_CURVE_ask_line_data(line2Tag, &line2Coords);

  7.         double line1Vector[3] = {line1Coords.end_point[0] - line1Coords.start_point[0],
  8.         line1Coords.end_point[1] - line1Coords.start_point[1],
  9.         line1Coords.end_point[2] - line1Coords.start_point[2]};
  10.         double line2Vector[3] = {line2Coords.end_point[0] - line2Coords.start_point[0],
  11.         line2Coords.end_point[1] - line2Coords.start_point[1],
  12.         line2Coords.end_point[2] - line2Coords.start_point[2]};
  13.         UF_MODL_ask_vector_angle(line1Vector, line2Vector, smallAngle, largeAngle);
  14. }
复制代码
函数调用如下:
  1. char msg[256];
  2. lw->Open();

  3. tag_t line1Tag = 41423;
  4. tag_t line2Tag = 41414;
  5. double smallAngle;
  6. double largeAngle;
  7. GetTwoLineAngle(line1Tag, line2Tag, &smallAngle, &largeAngle);
  8. sprintf(msg, "%f, %f", smallAngle * RADEG, largeAngle * RADEG);
  9. lw->WriteLine(msg);
复制代码



回复

使用道具 举报

1

主题

8

帖子

35

积分

潜龙勿用

Rank: 1

积分
35
发表于 2018-12-5 14:57:32 | 显示全部楼层
经常遇到矢量夹角的情况,线夹角还没遇到过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( 蜀ICP备16014681号

GMT+8, 2018-12-19 13:02 , Processed in 0.084142 second(s), 22 queries .

Powered by www.nxopen.cn

© 2001-2013 nxopen.cn

快速回复 返回顶部 返回列表