|
我是ObjectARX的初学者,遇到以下棘手问题,希望高手们能帮我解决一下:
在2000中画一个包含多条直线、多个圆弧的图形,怎么通过VC++6.0编程找到直线的起点、终点坐标和圆弧的中心坐标、半径,并且保证两线之间的起终点要在误差范围内(这个误差范围自定),如果不在误差范围内弹出对话框提示用户要如何处理?而且要把所得到的直线起终点坐标和圆弧中心坐标、半径存到一个结构体里,方便调用!
我现在做了一点,往后就不会了!急啊,希望大虾们帮帮忙
我编的程序如下:
void CDialogTrackSetting::OnTrackpick()
{
// TODO: Add your control notification handler code here
BeginEditorCommand();
char strPrompt[50]="\n请选择直线,圆弧!";
ads_name ent_name;
ads_point ent_point;
AcDbObjectId objId;
AcDbEntity * pEnt;
const char *pClsName=NULL;
if(RTNORM==acedEntSel(strPrompt,ent_name,ent_point))
{
CompleteEditorCommand();
acdbGetObjectId(objId,ent_name);
acdbOpenAcDbEntity(pEnt,objId,AcDb::kForRead);
pClsName = pEnt->isA()->name();
if(0==strcmp("AcDbLine",pClsName))
{
AcDbLine* pLine;
AcGePoint3d start_point,end_point;
pLine=(AcDbLine*)pEnt;
start_point=pLine->startPoint() ;
end_point=pLine->endPoint() ;
}
if(0==strcmp("AcDbCircle",pClsName))
{
AcDbCircle* pCircle;
AcGePoint3d center_point;
double radius;
pCircle=(AcDbCircle*)pEnt;
center_point=pCircle->center() ;
radius=pCircle->radius() ;
}
}
CompleteEditorCommand();
}
|
|