查看: 1870|回复: 15

求一组顶点的最外层边框点!!

[复制链接]

该用户从未签到

发表于 2009-9-11 18:54:41 | 显示全部楼层 |阅读模式
假设有一组无序的二维点,请问如何求出这组无序二维点的最外层边框点?谢谢!如果是三维的,应该如何做?

该用户从未签到

发表于 2009-9-11 19:42:43 | 显示全部楼层
这有点类似求取凸包问题,您可以在网上检索一下相关的算法

该用户从未签到

 楼主| 发表于 2009-9-11 20:08:24 | 显示全部楼层
请教array,如果我想在平面利用这些点绘制模型的投影轮廓呢?这个投影可能是凹的。。谢谢!

该用户从未签到

 楼主| 发表于 2009-9-11 20:18:08 | 显示全部楼层
请教一下array,我用max导出一个模型称ive格式,然后想做该模型在XOY平面的投影点(利用osgModeling::CalcProjection,参数设置没有问题),为什么求出后的点看上去并不是模型顶点在XOY的投影点,而是在别的做表面上的投影呢?

该用户从未签到

发表于 2009-9-11 21:50:38 | 显示全部楼层
您的参数是怎么设置的?

该用户从未签到

 楼主| 发表于 2009-9-11 22:31:00 | 显示全部楼层
osg:lane _plane_XOY;

                        _plane_XOY.set(0.0,0.0,1.0,0.0);

_overLapShadowVec3Array->push_back( osgModeling::calcProjection(_array->at(i),plane))

其中_array是VertexVisitor vtea 得到的一个PositionAttitudeTransform节点的所有空间三维坐标

该用户从未签到

发表于 2009-9-12 00:27:38 | 显示全部楼层
似乎不会有错才对,您得到的结果是什么?
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-9-12 02:54:36 | 显示全部楼层
    上帝的左手是不是在做论文,以前有位同仁做过,得到凸包用的是什么凸闭包收缩法。

    该用户从未签到

    发表于 2009-9-12 14:32:41 | 显示全部楼层
    如果是平面上的凸多变形还可以,如果所有点都在该边的一侧(有判断算法),那么这个就是边界;如果是凹的可能就复杂了!

    该用户从未签到

    发表于 2009-9-12 17:20:53 | 显示全部楼层
    lz看看Delaunay算法,看可不可以得到一些启示
    http://blog.csdn.net/lqh604/archive/2008/04/21/2311242.aspx

    该用户从未签到

     楼主| 发表于 2009-9-14 20:05:35 | 显示全部楼层
    F:\data\Visual Studio 2005\Projects\osgVR\osgVR\captureImage001.jpg

    该用户从未签到

     楼主| 发表于 2009-9-14 20:09:45 | 显示全部楼层
    请教一下大家,做出投影的图像如附件所示,为什么看上去不是在xoy面得投影呢,而是像在YOZ平面的投影?是不是得转换一下坐标轴?(该图片是直接通过3dmax经osgEXp导出的)
    captureImage000.jpg

    该用户从未签到

     楼主| 发表于 2009-9-14 20:12:57 | 显示全部楼层
    我采用的是LINE_LOOP方式绘制投影点,并且通过osgModeling::calcProjection设定投影面和投影点osg::plane _plane_XOY;

                            _plane_XOY.set(0.0,0.0,1.0,0.0);

    _array->push_back( osgModeling::calcProjection(_array->at(i),plane))

    该用户从未签到

    发表于 2009-9-14 22:13:22 | 显示全部楼层
    这个取决于您的模型在OSG中的轴向。OSG世界坐标系为:望向屏幕时,X向右,Y向内,Z向上,符合右手坐标系。您也可以自己写投影到平面的代码,计算方法本身很简单

    该用户从未签到

     楼主| 发表于 2009-9-14 22:33:34 | 显示全部楼层
    请教一下array,我只取_array->at(i).x()和_array->at(i).y()当做投影点,产生的结果是一样的??是不是利用3dmax导出时有问题?或者是其他原因?谢谢!

    该用户从未签到

    发表于 2009-9-14 23:25:05 | 显示全部楼层
    “我只取_array->at(i).x()和_array->at(i).y()当做投影点”,说实话我不是很明白您的意思
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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