天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 52|回复: 0

显示封闭多边形的形心

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]void cmdDispProperty()
{
    ArxDbgUiPrEntity prEnt(_T("请选择由 Pline组成的封闭多边形"), NULL);
    prEnt.addAllowedClass(AcDbPolyline::desc());

    if (prEnt.go() != ArxDbgUiPrBase::kOk)
    {
        return;
    }

    AcDbEntity* pEnt1 = NULL;
    acdbOpenObject(pEnt1,prEnt.objectId(),AcDb::kForRead);

    //获得封闭形顶点
    AcDbPolyline *Polygon = NULL ;
    Polygon = AcDbPolyline::cast(pEnt1);
    ASSERT( Polygon != NULL );
    if (Polygon == NULL)
    {
        AfxMessageBox(_T("线型不为多义线"));
        pEnt1->close();
        return;
    }

    if( !Polygon->isClosed() )
    {
        Polygon->close();
        AfxMessageBox(_T("外轮廓不封闭"));
        return;
    }

    AcGePoint3d *pPtArray;//记录外轮廓上的点

    int VertNum = (int)Polygon->numVerts() ;
    pPtArray = new AcGePoint3d[VertNum];
    int i;
    for( i = 0; i < VertNum; i ++ )
    {
        AcGePoint3d    Temp;
        Polygon->getPointAt(i,Temp);

        pPtArray<i> = Temp;        
    }
    pEnt1->close();

    AcGePoint3d centroid;
   
    GetCentroidPt(pPtArray, VertNum, centroid);


    TCHAR Text[132];
    _stprintf(Text, _T("%.3f"), centroid.y);   
   
    DelGroupEnt(_T("neuotrol"));
    DrawElevLine2(centroid,Text,_T("Neuotrol"));
}[/code]

 

 

 

 

显示封闭多边形的形心
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 15:28 , Processed in 0.166716 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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