找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 125|回复: 0

ARX 查找多段线上的下一点

[复制链接]

1

主题

0

回帖

35

积分

管理员

积分
35
发表于 2024-5-2 22:43:06 | 显示全部楼层 |阅读模式
  1. static void GetNextPt(const AcDbPolyline* plMin,const bool& gotonext,const int& plIndex,AcGePoint2d& ptNextS,AcGePoint2d& ptNextE)
  2. {
  3. int nextIndex = 0;
  4. int count = plMin->numVerts();
  5. if(!gotonext)
  6. {
  7. if(plIndex > 0)
  8. {
  9. nextIndex = plIndex - 1;
  10. }
  11. else
  12. {
  13. nextIndex = count - 1;
  14. }
  15. }
  16. else
  17. {
  18. if(plIndex < count - 1)
  19. {
  20. nextIndex = plIndex + 1;
  21. }
  22. else
  23. {
  24. nextIndex = 0;
  25. }
  26. }
  27. AcDbPolyline::SegType nextType = plMin->segType(nextIndex);
  28. if(nextType == AcDbPolyline::SegType::kArc)
  29. {
  30. AcGeCircArc2d arc2d;
  31. plMin->getArcSegAt(nextIndex,arc2d);
  32. ptNextS = arc2d.startPoint();
  33. ptNextE = arc2d.endPoint();
  34. }
  35. else
  36. {
  37. AcGeLineSeg2d line2d;
  38. plMin->getLineSegAt(nextIndex,line2d);
  39. ptNextS = line2d.startPoint();
  40. ptNextE = line2d.endPoint();
  41. }
  42. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2025-1-4 12:03 , Processed in 0.181585 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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