找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[每日一码] ARX 查找多段线的下一点

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 2024-3-14 20:03:55 | 显示全部楼层 |阅读模式
  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, 2024-12-29 04:56 , Processed in 0.151986 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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