arx程序说明(二)

第二章         信 息 管 理 的 类信息管理的类主要用于问题空间中的各种对象,在分析问题的空间中,主要有点类,直线类、圆弧类,以及描述建筑物的门窗类、房间类,公寓类等,各种类主要由属性和成员函数进行描述。下面分别进行介绍。1、点类CmyPoint点类用来描述AutoCAD中的点,主要用于记录线条的起点和终点,也用于在图形拓扑结构中的节点。下面是点类的定义class Cmy
摘要由CSDN通过智能技术生成

第二章        

信息管理的类主要用于问题空间中的各种对象,在分析问题的空间中,主要有点类,直线类、圆弧类,以及描述建筑物的门窗类、房间类,公寓类等,各种类主要由属性和成员函数进行描述。下面分别进行介绍。

1、点类CmyPoint

点类用来描述AutoCAD中的点,主要用于记录线条的起点和终点,也用于在图形拓扑结构中的节点。下面是点类的定义

class CmyPoint

{

public:

       CMyPoint();//构造函数

       BOOL operator==(CMyPoint &aPoint); //运算符重载,用于判断两个点的坐标是否相等

       CMyPoint *midPoint(CMyPoint *p); //计算当点和另一个点之间的中点

       CMyPoint *nextPoint;//点链表指针

       virtual ~CMyPoint();//析构函数

public:

       double x,y,z;//点的坐标

       CMyPoint(double thex,double they,double thez):x(thex),y(they),z(thez) //构造函数

       {

              nextPoint=NULL;

       }

       double DisToPoint(CMyPoint &aPoint)计算当前点与另一点的距离

       double directAngleTo(CMyPoint &p)计算当前点到另一点的方向角

       BOOL aboutEqual(CMyPoint &p); //判断一个电是否在另一个点的附近,用于对图形归整

       bool samePoint(CMyPoint &p); //判断两个点是否是同一点

}

2、直线类

直线类用于描述AutoCAD中的直线,并且在我们的分析还用中心线描述墙体,墙上的门洞也用直线进行描述。下面是直线类的定义:

class CLine 

{

public:

       //属性

       //the start and the direction angle and it's length definate a line

       CMyPoint *theS,*theE;//直线的起始点和终结点

       double dAngle,dLength;//直线的方向角和长度,角度单位为弧度,长度单位为毫米

       AcDbObjectId lineID;//直线的CADID

       int wins;//该直线段上的直线段—也就是该直线上的门窗线条数目

       CLine *winLine[MAXWIN];//门窗线条数组MAXWIN为门窗线条的最大数目设置为15

       double thickness;

       //成员函数

       CLine();//构造函数

       CLine(CMyPoint *s,CMyPoint *e); //构造函数

       CLine(AcGePoint3d &start,AcGePoint3d &end,AcDbObjectId aId); //构造函数,以AutoCAD中的点类进行定义该直线

       void exchangeEnds();//交互直线的两个端点,改变直线的方向。

       CMyPoint *getEnd();//返回直线的终点

       BOOL onIt(CLine &aLine);判断另一条直线是否在该直线上,用于初次扫描图形的时候判断是否另一条直线是重复绘制的多余对象,也用于再次对图形扫描的时候判断另一直线是否是该直线表达的墙体上的门洞线条,从而进行门洞记录。

       int OnItExtend(CLine &aLine);判断另一直线是否在该直线的延长线上,只要用于应用极小完整性进行墙体信息恢复的时候判断两直线是否组成一个完整的墙体。

       BOOL parallelTo(CLine &aLine); 判断两条直线是否平行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值