找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 800|回复: 0

[求助]:希望晓东版主再提供一下DB实体类转GE类的函数

[复制链接]
发表于 2004-12-24 14:32:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
希望晓东版主再提供一下DB实体类转GE类的函数,我在论坛上看到你说已经发在论坛上了,但是用AcGeCurve3d却怎样也找不到。
这里也贴一段我的有关求闭合曲线面心点的算法,增加论坛一些实质性的东西
//计算面的内心点通过的线
BOOL CMathOperator::computePolygonNxPntLine(AcGePoint3dArray pntArray,AcGePoint3d &pnt1,AcGePoint3d &pnt2)
{
        AcGePlane plane;
        AcGePoint3dArray rsPntArray,midlinePntArray,crsPnts;
        if(pntArray.first().convert2d(plane)!=pntArray.last().convert2d(plane))
                pntArray.append(pntArray.first());
        ComputeOutsideFourPntofPntArray(pntArray,rsPntArray);//计算外包最小矩形
        /////////////
        double dx,dy;
        dx=rsPntArray.first().convert2d(plane).distanceTo(rsPntArray[1].convert2d(plane));
        dy=rsPntArray.first().convert2d(plane).distanceTo(rsPntArray.last().convert2d(plane));
        if(dx>dy)//计算用于求交的中线,取长宽中的大值
        {
                midlinePntArray.append(GetMidPnt(rsPntArray[0],rsPntArray[1]));
                midlinePntArray.append(GetMidPnt(rsPntArray[3],rsPntArray[2]));
        }
        else
        {
                midlinePntArray.append(GetMidPnt(rsPntArray[1],rsPntArray[2]));
                midlinePntArray.append(GetMidPnt(rsPntArray[0],rsPntArray[3]));
        }
        CCommonHanlder cmnHdl;
        if(!cmnHdl.getSJD(pntArray,midlinePntArray,crsPnts))//计算中线与点集的交点数组
                return FALSE;
        PntSortByXY(crsPnts,dx>dy?Y:X);//分治排序
        /////////////////////////
        double minDist=0;

        for(int i=0;i<crsPnts.length()-1;i+=2)
        {
                AcGePoint3d tmpPnt1,tmpPnt2;
                double dist;
                tmpPnt1=crsPnts;
                tmpPnt2=crsPnts[i+1];
                dist=tmpPnt1.convert2d(plane).distanceTo(tmpPnt2.convert2d(plane));
                if(dist>minDist)//取交点中最长的线段
                {
                        minDist=dist;
                        pnt1=tmpPnt1;
                        pnt2=tmpPnt2;
                }
        }
        return TRUE;
}
计算到线段后,考虑点集中是否存在孤岛情况,如果有,求交取外部最长线段,取中点坐标,
如果没有,取中点坐标,就是面的面心点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 06:50 , Processed in 0.278428 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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