查看: 2826|回复: 3

坐标的转换问题

[复制链接]

该用户从未签到

发表于 2009-6-10 10:52:47 | 显示全部楼层 |阅读模式
根据鼠标点击求出当前的位置的空间坐标,同时能计算出经纬度坐标,但是把再经纬度转换为空间坐标就不对了  不知道是上面原因转换错误  求指正!!!下面是主要的代码及效果图:
//如果没有发生交集运算,及鼠标没有点中物体
if (viewer->computeIntersections(x,y,intersections))//
{
        //得到相交交集的交点
        osgUtil:ineSegmentIntersector::Intersections::iterator hitr = intersections.begin();
        {

        //输入流
        os<<"Mouse in World  X:"<< hitr->getWorldIntersectPoint().x()<<"  Y: "<< hitr->getWorldIntersectPoint().y()<<"  Z: "<< hitr->getWorldIntersectPoint().z()<<std::endl;
           //设置经纬度
            zz.convertXYZToLatLongHeight(hitr->getWorldIntersectPoint().x(), hitr->getWorldIntersectPoint().y(), hitr->getWorldIntersectPoint().z(),latitude,longitude,height);
          os<<"latitude:"<< latitude*180/osg:I<<" longitude:"<<longitude*180/osg::PI<<" height:"<< height<<std::endl;
                       
         zz.convertLatLongHeightToXYZ(latitude*180/osg::PI,longitude*180/osg::PI,height,Posx,Posy,Posz);

        }
}
double distance;
distance = sqrt(eye[0]*eye[0]+eye[1]*eye[1]+eye[2]*eye[2]);

图片中X、Y是鼠标的位置,g_vcenter是我要转到到的地方

[ 本帖最后由 zhufu0208 于 2009-6-10 10:55 编辑 ]
未命名.jpg

该用户从未签到

发表于 2009-6-10 12:21:43 | 显示全部楼层
您难道不觉得你的转换有问题么????至少你的转换参数单位没有一致~~~
  1.            //设置经纬度
  2.             zz.convertXYZToLatLongHeight(hitr->getWorldIntersectPoint().x(), hitr->getWorldIntersectPoint().y(), hitr->getWorldIntersectPoint().z(),latitude,longitude,height);
  3.           os<<"latitude:"<< latitude*180/osg:I<<" longitude:"<<longitude*180/osg:I<<" height:"<< height<<std::endl;
  4.                         
  5.          zz.convertLatLongHeightToXYZ(latitude*180/osg:I,longitude*180/osg:I,height,Posx,Posy,Posz);
复制代码

该用户从未签到

 楼主| 发表于 2009-6-11 09:30:15 | 显示全部楼层
呵呵  后来才发现的  不好意思  已经解决了

该用户从未签到

发表于 2012-2-8 16:07:26 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表