查看: 1691|回复: 4

请教一个关于扫描线的问题!

[复制链接]

该用户从未签到

发表于 2009-4-24 22:03:13 | 显示全部楼层 |阅读模式
假设我的平面是(0.0,0.0),(10.0,0.0),(10.0,10.0),(0.0,10.0)绘制成的,我用平行于Z轴的一条扫描线L对这个四边形进行扫描,扫描顺序是从(0.0,0.0)到(0.0,10.0)(注:这是四边形的一条边,当扫描完这条边,x自增一个量,当前x为0.0),同时求L与(0.0,0.0)和(0.0,10.0)所构成的线段的焦点,设定每次扫描线Y坐标增大1.0,可结果是(0.0,1.0),(0.0,2.0),(0.0,3.0),(0.0,4.0),(0.0,5.0),(0.0,6.0)(0.0,7.0),(0.0,8.0)和(0.0,9.0),问题就出在结果上面,为什么结果不包括(0.0,0.0)和(0.0,10.0)这两个点?   我用的是osgUtil:ineSegmentIntersector,,当x为1.0到9.0时,能扫描出来(x,0.0)和(x,10.0),但是当x=10.0时,出现同样问题,同样不能扫描(10.0,0.0)和(10.0,10.0),出问题的都是顶点!!请教大家这是什么问题?如何解决?? 谢谢

该用户从未签到

发表于 2009-4-25 01:34:20 | 显示全部楼层
很难估计,,你可以全面跟踪一下它的检测过程~~~方便可以传工程上来看看~~~~~~

该用户从未签到

 楼主| 发表于 2009-4-26 20:30:20 | 显示全部楼层
其实我的意思是,定义一个面,用垂直于该面的线段,在该面定义的顶点处与该面求交点,为什么总是得出的是没有交点存在呀??

该用户从未签到

 楼主| 发表于 2009-4-27 09:15:11 | 显示全部楼层
发现一个问题,当我定义的面是正方形或三角形时,用扫描线取顶点的话,用我的扫描线方法计算,但是顶点取不到,当平面为任意不规则多边形时,用我的扫描线方法就可以取到,请大家发表一下看法。。。

该用户从未签到

 楼主| 发表于 2009-4-27 09:20:13 | 显示全部楼层
std::cout<<"第"<<k<<"次的起始坐标是"<<"    "<<_beginX<<"    "<<_beginY<<"    "<<std::endl;
        osgUtil:ineSegmentIntersector::Intersections _intersections;
                osg::ref_ptr< osgUtil::LineSegmentIntersector > _lineSegmentIntersector = new osgUtil::LineSegmentIntersector(osg::Vec3(_beginX,_beginY,1.0),osg::Vec3(_beginX,_beginY,-1.0));
                osgUtil::IntersectionVisitor _iv(_lineSegmentIntersector.get());
                _theProjection->accept(_iv);
        _intersections=_lineSegmentIntersector->getIntersections();
                _intersectionNumber=_intersections.size();
               
                if (_lineSegmentIntersector->containsIntersections())
                {
                       
                        std::cout<<"当坐标为"<<_beginX<<"    "<<_beginY<<"产生了交点"<<"    "<<std::endl;
                }
                else                
                                           {       
                       
                        std::cout<<"当坐标为"<<_beginX<<"    "<<_beginY<<"没有交点"<<"    "<<std::endl;

                }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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