查看: 1441|回复: 7

Plane类的三个构造函数构造的平面有不同吗???

[复制链接]

该用户从未签到

发表于 2014-5-30 13:43:11 | 显示全部楼层 |阅读模式
osg:: Plane:: Plane  ( const Vec3_type &  norm,  
  value_type  d   
)   [inline]



osg:: Plane:: Plane  ( const Vec3_type &  v1,  
  const Vec3_type &  v2,  
  const Vec3_type &  v3   
)   [inline]



osg:: Plane:: Plane  ( const Vec3_type &  norm,  
  const Vec3_type &  point   
)   [inline]

该用户从未签到

发表于 2014-5-30 17:05:13 | 显示全部楼层
没什么不同,注意法向

该用户从未签到

发表于 2014-5-30 17:24:23 | 显示全部楼层
其实就是平面的三种描述方法
后两种可以转化为第一种

//已知空间直线方程的四个参数,前三个是平面的法向量:Ax+By+Cz+D=0
osg:: Plane:: Plane  ( const Vec3_type &  norm,  
  value_type  d   
)   [inline]

//已知平面上三点确定一个平面
osg:: Plane:: Plane  ( const Vec3_type &  v1,  
  const Vec3_type &  v2,  
  const Vec3_type &  v3   
)   [inline]

//已知平面上一点和平面的法向量
osg:: Plane:: Plane  ( const Vec3_type &  norm,  
  const Vec3_type &  point   
)   [inline]

该用户从未签到

 楼主| 发表于 2014-5-30 17:28:06 | 显示全部楼层
cenfer 发表于 2014-5-30 17:24
其实就是平面的三种描述方法
后两种可以转化为第一种

//已知平面上一点和平面的法向量
osg:: Plane:: Plane  ( const Vec3_type &  norm,  
  const Vec3_type &  point   
)   [inline]
求出的平面法向量需要归一化吗????

该用户从未签到

发表于 2014-5-30 17:42:41 | 显示全部楼层
刚才看了下源码,这么明白的注释,还需要问问?
/// Constructor
        /** This constructor initializes the internal values directly without any checking or manipulation.
          * @param norm The normal of the plane.
          * @param d    The negative distance from the point of origin to the plane.
          * @remark You may call osg:lane::MakeUnitLength afterwards if the passed normal was not normalized. */
        inline Plane(const Vec3_type& norm,value_type d) { set(norm,d); }

        /// Constructor
        /** This constructor calculates from the three points describing an infinite plane the internal values.
          * @param v1 Point in the plane.
          * @param v2 Point in the plane.
          * @param v3 Point in the plane.
          * @remark After this constructor call the plane's normal is normalized in case the three points described a mathematically
          *         valid plane.
          * @remark The normal is determined by building the cross product of (v2-v1) ^ (v3-v2). */
        inline Plane(const Vec3_type& v1, const Vec3_type& v2, const Vec3_type& v3) { set(v1,v2,v3); }

        /// Constructor
        /** This constructor initializes the internal values directly without any checking or manipulation.
          * @param norm  The normal of the plane.
          * @param point A point of the plane.
          * @remark You may call osg::Plane::MakeUnitLength afterwards if the passed normal was not normalized. */
        inline Plane(const Vec3_type& norm, const Vec3_type& point) { set(norm,point); }

该用户从未签到

 楼主| 发表于 2014-5-30 17:58:14 | 显示全部楼层
cenfer 发表于 2014-5-30 17:42
刚才看了下源码,这么明白的注释,还需要问问?
/// Constructor
        /** This constructor initial ...

谢谢!
帮我看看这俩个问题
http://bbs.osgchina.org/forum.ph ... &extra=page%3D1
http://bbs.osgchina.org/forum.ph ... &extra=page%3D1

该用户从未签到

 楼主| 发表于 2014-6-3 15:10:39 | 显示全部楼层
cenfer 发表于 2014-5-30 17:42
刚才看了下源码,这么明白的注释,还需要问问?
/// Constructor
        /** This constructor initial ...


想构造6个面正方体,立方体的棱要互相垂直???
osg:: Polytope:: PlaneList planes(6);
osg:: Polytope CubePolytope(planes);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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