[MS CE C++]获取指定线串上距离指定点最近位置的方法的疑问

本人想在自定义tool中,根据指定线串和点,获取线串上距离指定点最近位置的坐标,以下是调用代码:

double d;
DPoint3d p1, p2;
mdlElmdscr_distanceAtPoint(&d, &p1, &p2, eehRefLine.GetElementDescrP(), &pt, 1e-6 * UOR_PER_METER);

其中pt是_OnDynamicFrame(DgnButtonEventCR ev)中的ev.GetPoint()得来;

在计算得到参数3后,将结果向上下各延伸一定长度用于测试计算结果,最终测试得到了以下结果,

其中1是光标悬停的位置(未开启捕捉),2是根据计算结果动态绘制的线串,明显可以看出计算结果不正确,个人分析有两个可能的原因:

1._OnDynamicFrame(DgnButtonEventCR ev)中的ev.GetPoint()得到的坐标与我们主观感觉的坐标有偏差;

2.mdlElmdscr_distanceAtPoint方法有漏洞或者我调用方式错误;

请教,为什么会出现这种情况呢?

Parents Reply Children
No Data