请问怎样才能得到已知AcDbCurve的起点和终点坐标?
我用AcDbCurve *pLine = new AcDb2dPolyline(k2dSimplePoly,
vertices,
0,
Adesk::kFalse,
1,
1,
NULL) ;
画了一条线,现在想通过pline来提取它的起点和终点的坐标,请问该怎么做?
AcDbCurve的起点和终点
其实,起点和终点坐标就在AcDb2dPolyline()构造函数的vertices参数中,这个参数是AcGePoint3dArray类型的,AcGePoint3dArray是AcArray类模板的一个模板类,可以用vertices->first()返回起点坐标,用vertices->last()返回终点坐标。至于vertices参数的获取,可以用AcGePoint3d AcDb2dPolyline::vertexPosition(const AcDb2dVertex& vert) const;
函数。
thank you very much!
我还不太明白,再想请问一下怎样我才能得到AcDb2dVertex& vert?
不好意思 leeyeafu 给我的AcGePoint3d AcDb2dPolyline::vertexPosition(const AcDb2dVertex& vert) const;函数。我看了帮助还是不会用。想再请问一下。const AcDb2dVertex& vert是不是已知的顶点?这个函数的返回值是一个AcGePoint3d还是一个AcGePoint3dArrary?我是在做一个多义线的反应器,用到void
AsdkObjectToNotifyer::modified(const AcDbObject* pObj)
{
AcDb2dPolyline *pLine = AcDb2dPolyline::cast(pObj);
//--------
现在我想得到pline的起点和终点坐标
却不知道怎样做?
另外如果我想把一个已知圆心和多义线的起点联系起来。用
AcGePoint3d q = pCircle->center();
AcGePoint3dArray vertices;
vertices.append(q);
pLine->appendVertex(vertices);
怎样才能保证q一定是和起点联系的呢?
AcDb2dVertex是AcDb2dPolyline的子实体(Subentity)对象
开始我没明白你的意图,AcDb2dPolyline::vertexPosition()返回的是AcGePoint3d对象。要获取AcDb2dVertex 对象,需使用AcDb2dPolyline子实体读写函数(Subentity Access Functions)。用pLine->appendVertex(); 可以添加顶点,但你的程序中参数使用不对。应该是这样:
AcGePoint3d *q = pCircle->center();
AcDb2dVertex *pVertex=new AcDb2dVertex(q);
pLine->appendVertex(pVertex);
这样一个已知圆心和多义线的终点联系起来了。
如果想把一个已知圆心和多义线的起点联系起来,要用到AcDb2dPolyline::vertexIterator();顶点浏览器函数。
不好意思,请问怎样使用AcDb2dPolyline子实体读写函数?或哪有参考的例子?
谢谢,这方面的书籍真的很难找。。
页:
[1]