cpp组件坐标转换

0 投票
您好:

  我想请问下 CPP 组件 屏幕坐标 与UGVector3d 坐标之间 相互转换 应该怎么去做
4月 22, 2020 分类:  117次浏览 | 用户: daoli 初出茅庐 (48 分)

1个回答

0 投票
你说的就是屏幕坐标和地图坐标转换吧;

//屏幕坐标转地图坐标:

UGPoint2D MapControl::PixelToMap(UGPoint pt)
{
    UGPoint2D pntlp;
    UGPoint2D pnt2D(0.0, 0.0);

    //DP -> LP -> MP
    UGDrawing *pDrawing = m_pUGMapWnd->m_mapWnd.m_Map.GetDrawing();
    m_pUGMapWnd->m_mapWnd.m_Map.GetDrawing()->m_DrawCache.DPtoLP(&pt, &pntlp, 1);
    pDrawing->m_DrawParam.LPtoMP(pntlp, pnt2D);

    return pnt2D;
}

//地理坐标转屏幕坐标:

UGPoint MapControl::MapToPixel(UGPoint2D pnt)
{
    UGPoint2D pntlp;
    UGPoint pt(0, 0);

    // MP -> LP -> DP
    UGDrawing *pDrawing = m_pUGMapWnd->m_mapWnd.m_Map.GetDrawing();
    pDrawing->m_DrawParam.MPtoLP(pnt, pntlp);
    m_pUGMapWnd->m_mapWnd.m_Map.GetDrawing()->m_DrawCache.LPtoDP(&pntlp, &pt, 1);

    return pt;

}
4月 22, 2020 用户: 程逸诗 名扬四海 (4,342 分)
额   这个好像还不太像   类似超图桌面版的一个功能   打开一个场景后  鼠标在场景中点一个点 就能获取到那个点的 经纬度和高度  这种
...