求多段线形心的面积矩方法 - 精华帖集合
www.dimcax.com
求多段线形心的面积矩方法
cad二次开发中经常遇到求多段线的形心的问题,一般的方法是先构建面域,再求出利用arx的相关函数得出形心,原理很简单,但由于要在cad中构建实体等操作,所以运行效率比较低。
本程序采用的是计算面积矩的方法,纯数学计算,速度应该要快点。但与构建面域的方法一样,多段线不得自相交,否则会得出错误结果。
你可以自由免费使用本代码,如果有问题请及时反馈,请勿分发传播。
欢迎拍砖,但不要人身攻击
辅助函数
//由平面坐标算得方位角
inline
double getazimuth(const acgepoint3d &startpt, const acgepoint3d &endpt)
{
return csch::assist::crd2azimuth(startpt.x, startpt.y, endpt.x, endpt.y);
}
//根据第一点坐标,距离和方向计算另一点坐标
acgepoint3d getlinepoint(
const acgepoint3d& pt1 //第一点
, double distance //距离
, double dirction //方向
)
{
double x, y;
x = pt1.x + distance * cos(dirction);
y = pt1.y + distance * sin(dirction);
return acgepoint3d(x, y, 0);
}
复制代码
[ ]
什么啊
什么?
我刷新一下!
看看先
好啊!
我正想找这个代码呢
我想 给实体添加标注
正好用上
啊
支持~加精收藏,嘿嘿
看看先
学如逆水行舟,不进则退!
有点变态不