查看: 1375|回复: 7

求交问题

[复制链接]

该用户从未签到

发表于 2011-12-6 14:38:30 | 显示全部楼层 |阅读模式
void main()
{
        osgViewer::Viewer viewer;
        osg::Group* rootNode = new osg::Group();
        osg::Node* tankNode = NULL;
        osg::Node* terrainNode = NULL;
        osg:ositionAttitudeTransform* tankXform = new osg::PositionAttitudeTransform();

        tankNode = osgDB::readNodeFile("F:\\models\\T72-Tank\\T72-tank_des.flt");
        terrainNode = osgDB::readNodeFile("F:\\models\\JoeDirt\\JoeDirt.flt");

        rootNode->addChild(terrainNode);
        rootNode->addChild(tankXform);
        tankXform->addChild(tankNode);

        double tankXPosition = -10.0;
        double tankYPosition = -10.0;

        osg:ineSegment* tankLocationSegment = new osg::LineSegment();

        tankLocationSegment->set(osg::Vec3(tankXPosition, tankYPosition, 999) ,osg::Vec3(tankXPosition, tankYPosition, -999) );

        osgUtil::IntersectVisitor findTankElevationVisitor;

        findTankElevationVisitor.addLineSegment(tankLocationSegment);

        terrainNode->accept(findTankElevationVisitor);

        osgUtil::IntersectVisitor::HitList tankElevationLocatorHits;

        tankElevationLocatorHits = findTankElevationVisitor.getHitList(tankLocationSegment);

        osgUtil::Hit heightTestResults;

        heightTestResults = tankElevationLocatorHits.front();

        osg::Vec3d terrainHeight = heightTestResults.getWorldIntersectPoint();

        tankXform->setPosition( terrainHeight );

        viewer.setSceneData(rootNode);
        viewer.realize();
        viewer.run();
}
上面是从海军教程上看到  但是现在感觉好多类都变了 而且感觉这个比较麻烦 想问下现在求交怎么做 在线等 希望那个大侠帮个忙 谢谢

该用户从未签到

 楼主| 发表于 2011-12-6 14:41:00 | 显示全部楼层
本帖最后由 Skyline 于 2011-12-6 17:10 编辑

。。

该用户从未签到

发表于 2011-12-6 15:28:15 | 显示全部楼层
Skyline 发表于 2011-12-6 14:41
void main()
{
osgViewer::Viewer viewer;

求交请参考osgpick和osgKeyboardMouse这两个示例

该用户从未签到

 楼主| 发表于 2011-12-6 16:37:46 | 显示全部楼层
garyliyong 发表于 2011-12-6 15:28
求交请参考osgpick和osgKeyboardMouse这两个示例

你说的那个是鼠标拾取求交  我的意思是想实现坦克贴地面行进  建一个线段通过求与地面的焦点 来确定坦克的高度Z  上面的代码是海军教程上的

该用户从未签到

发表于 2011-12-6 16:44:05 | 显示全部楼层
原理都是一样的,通过射线求交

该用户从未签到

发表于 2011-12-6 19:21:53 | 显示全部楼层
不是有现成的例子么,很简单的,射线求交,都不用自己计算了,比opengl方便多了

该用户从未签到

发表于 2011-12-7 09:19:55 | 显示全部楼层
osg有新的pick例子

该用户从未签到

发表于 2011-12-7 09:20:17 | 显示全部楼层
编译完osg就有了,好像
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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