天气与日历 切换到窄版

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

【c++】ObjectARX三点圆弧分段

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
【c++】ObjectARX三点圆弧分段
static void DividArc( const AcGePoint3d& spt, const AcGePoint3d& ept, const AcGePoint3d& thirdPt,
                     int count, AcGePoint3dArray& pts )
{
    pts.append( spt );

    AcGeCircArc3d arc( spt, thirdPt, ept );
    AcGePoint3d cnt = arc.center();
    //        double radius = arc.radius();
    AcGeVector3d v1 = spt - cnt;
    AcGeVector3d v2 = ept - cnt;
    int c = ( arc.normal().z > 0 ? 1 : -1 ); // 弧线方向

    double a1 = v1.angleTo( AcGeVector3d::kXAxis, -AcGeVector3d::kZAxis );
    double a2 = v2.angleTo( AcGeVector3d::kXAxis, -AcGeVector3d::kZAxis );

    double dq = abs( a2 - a1 ) / count;
    //acutPrintf(_T("\na1:%.3f, a2:%.3f dq:%.3f c:%d"), a1, a2, dq, c);
    for( int i = 1; i < count; i++ )
    {
        v1.rotateBy( c * dq, AcGeVector3d::kZAxis );
        pts.append( cnt + v1 );
        //acutPrintf(_T("\n点%d:(%d,%d)"),i,pts[i].x,pts[i].y);
    }
    pts.append( ept );
}

 

 

 

 

【c++】ObjectARX三点圆弧分段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 11:40 , Processed in 0.141619 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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