天气与日历 切换到窄版

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

objectarx之两条曲线最短距离

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
double CCommonFuntion::GetLineDistance(AcDbObjectId& Line1, AcDbObjectId& Line2)
{
AcGeLineSeg2d geLine1 = GetGeLineObj(Line1);
AcGeLineSeg2d geLine2 = GetGeLineObj(Line2);

//计算并输出两者之间的最短距离
double distance = geLine1.distanceTo(geLine2);
return distance;
}

//根据输入的实体ID获得相同参数的AcGeLineSeg2d对象
AcGeLineSeg2d CCommonFuntion::GetGeLineObj(AcDbObjectId lineId)
{
AcGeLineSeg2d geLine; //AcGeLineSeg2d:在二维空间中表示一个有界的线段。
AcDbLine *pLine = NULL;
if (acdbOpenObject(pLine, lineId, AcDb::kForRead) == Acad::eOk)
//指针pLine指向打开的对象lineId
{
geLine.set(ToPoint2d(pLine->startPoint()),
ToPoint2d(pLine->endPoint()));
pLine->close();
}
return geLine;
}

// 二维点和三维点之间的转换
AcGePoint2d CCommonFuntion::ToPoint2d(const AcGePoint3d &point3d)
{
return AcGePoint2d(point3d.x, point3d.y);
}

 

 

 

 

objectarx之两条曲线最短距离
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 13:34 , Processed in 0.126219 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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