查看: 1816|回复: 7

通过鼠标点击生成道路

[复制链接]

该用户从未签到

发表于 2011-1-6 17:37:35 | 显示全部楼层 |阅读模式
我想通过鼠标在路面上点击生成一条道路,我现在是这样做的:鼠标单击,记住初始点,在另一个地方单击,为终点,分别在这个两个点的两侧再生成2个点,然后通过这6个点通过三角形网格生成一条直的路。
我现在想任意点n个点,然后沿着这n个点的路径生成一条路,我看了漫游中通过曲线插值生成路径那部分,但是我不知道这两者该怎么结合,请高手指点一下,谢谢!

该用户从未签到

发表于 2011-1-6 18:30:33 | 显示全部楼层
结合很简单,您把N个点插值先成一条path,又生成一条道路呗,这两者并不影响,道路只是几何体而已,压入生成路径的类似代码如下:

  1.     for(int i=0;i<numSamples;++i)
  2.     {
  3.         osg::Vec3 position(center+osg::Vec3(sinf(yaw)*radius,cosf(yaw)*radius,0.0f));
  4.         osg::Quat rotation(osg::Quat(roll,osg::Vec3(0.0,1.0,0.0))*osg::Quat(-(yaw+osg::inDegrees(90.0f)),osg::Vec3(0.0,0.0,1.0)));
  5.         
  6.         animationPath->insert(time,osg::AnimationPath::ControlPoint(position,rotation));

  7.         yaw += yaw_delta;
  8.         time += time_delta;

  9.     }

复制代码

该用户从未签到

发表于 2011-1-8 14:50:01 | 显示全部楼层
借贵宝地一问,漫游中通过选关键点再曲线插值生成路径那部分,您是怎样实现的啊?我看见网上的教材里面有些函数老了,实现不了,请指点一二,谢谢

该用户从未签到

发表于 2011-1-8 14:50:14 | 显示全部楼层
借贵宝地一问,漫游中通过选关键点再曲线插值生成路径那部分,您是怎样实现的啊?我看见网上的教材里面有些函数老了,实现不了,请指点一二,谢谢

该用户从未签到

发表于 2011-1-9 13:56:21 | 显示全部楼层
这个代码只是生成一些孤立点组成的漫游的路径,并没有显示出一条线状的路径啊??
2# FlySky
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-1-9 14:04:45 | 显示全部楼层
    曲线中只是慢游,你可以这样做,首先生成关键点,然后对关键点进行插值形成一条线,然后根据这条线看一下osgdelunay的例子生成一条公路。当然你根据自己的方法线两边划平行线也是可行的。

    该用户从未签到

    发表于 2011-10-20 09:47:06 | 显示全部楼层
    mark一下…………这个有用

    该用户从未签到

    发表于 2011-10-20 12:22:30 | 显示全部楼层
    主要是得到道路切面,然后沿曲线放样生成道路
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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