我需要实现一个三维标注的功能,这个是三维里面的模型
实际上还是类似于把三维模块转换为二维模块,只是视角并不是顶视图,而是可以看到立体的模型视角,然后再进行标注。
问题是我在新模块里的获取到的墙位置并不准确,我现在的代码如下
EditElementHandle eehline; LineHandler::CreateLineElement(eehline, NULL, DSegment3d::From(ptStartPos, ptEndPos), true, *ACTIVEMODEL);//上图模型中底面的中线 NameDescrp = eehline.GetElementDescrP(); //移动中心面 DPoint3d vec = DPoint3d::From(0, 0, 1); vec.Scale(dHeight);//dHeight墙的高度 mdlCurrTrans_begin(); Transform tMatrix; mdlTMatrix_getIdentity(&tMatrix); mdlTMatrix_setTranslation(&tMatrix, &vec); mdlElmdscr_transform(&NameDescrp, &tMatrix); mdlCurrTrans_end(); mdlElmdscr_convertTo2D(&NameDescrp, NameDescrp, 0, NULL, ACTIVEMODEL, model, true); DPoint3d midPos = getCenterOfElmdescr(NameDescrp);//或许线段中心点
最后出图中标注的位置并不正确