当前位置: 首页 > news >正文

量力商务大厦网站建设外链代发

量力商务大厦网站建设,外链代发,百度手机端推广,十大少儿编程教育品牌overoad代码中包含一段有意思的代码#xff0c;可以从视图投影矩阵逆推出摄像机的视锥体#xff0c;本文来分析一下原理 一、平面的方程 视锥体是用平面来表示的#xff0c;所以先看看平面的数学表达。 平面方程可以由其法线N#xff08;A, B, C#xff09;和一个点Q(x0,… overoad代码中包含一段有意思的代码可以从视图投影矩阵逆推出摄像机的视锥体本文来分析一下原理 一、平面的方程 视锥体是用平面来表示的所以先看看平面的数学表达。 平面方程可以由其法线NA, B, C和一个点Q(x0,y0,z0)定义其形式为 A ( x − x 0 ) B ( y − y 0 ) C ( z − z 0 ) 0 A(x-x_{0})B(y-y_{0})C(z-z_{0})0 A(x−x0​)B(y−y0​)C(z−z0​)0          整理变为 A x B y C z D 0 AxByCzD0 AxByCzD0,       其中 D − A x 0 − B y 0 − C z 0 D−Ax_{0}−By_{0}−Cz_{0} D−Ax0​−By0​−Cz0​          方程进一步可以将方程归一化 A A 2 B 2 C 2 x B A 2 B 2 C 2 y C A 2 B 2 C 2 z D A 2 B 2 C 2 0 \frac{A}{\sqrt{A^{2}B^{2}C^{2} } } x \frac{B}{\sqrt{A^{2}B^{2}C^{2} } }y\frac{C}{\sqrt{A^{2}B^{2}C^{2} } }z\frac{D}{\sqrt{A^{2}B^{2}C^{2} } } 0 A2B2C2 ​A​xA2B2C2 ​B​yA2B2C2 ​C​zA2B2C2 ​D​0 写成通用格式 a x b y c z d 0 axbyczd0 axbyczd0 那么点 p ( x 1 , y 1 , z 1 ) p(x_{1}, y_{1}, z_{1}) p(x1​,y1​,z1​)到平面的距离为 D a x 1 b y 1 c z 1 d Dax_{1}by_{1}cz_{1}d Dax1​by1​cz1​d 一个平面会将空间分成两个半空间halfspace进一步法线的朝向的空间称为正半空间positive halfspace法线背离的空间称为反半空间negative halfspace。根据D的符号可以判断点的相对位置 D 0 点位于反半空间D 0 点位于平面上D 0 点位于正半空间 这种特性可用于判断点是否在视锥体内部。 二、OpenGL视锥体 视锥体是摄像机能看到的区域只有在视锥体内的物体才能被看到。其由近平面、远平面与周围四个面组成形成一个平截头体区域。 三、Overload对视锥体的封装 Overload对视锥体的封装在文件Frustum.h、Frustum.cpp中。先看其定义 class Frustum { public:/*** 根据视图投影矩阵提取视锥体* param p_viewProjection*/ void CalculateFrustum(const OvMaths::FMatrix4 _viewProjection);/*** 判断点是不是在视锥体内* param p_x* param p_y* param p_z*/bool PointInFrustum(float p_x, float p_y, float _z) const;/*** 判断球是不是在视锥体内* param p_x* param p_y* param p_z* param p_radius*/bool SphereInFrustum(float p_x, float p_y, loat p_z, float p_radius) const;/*** 判断立方体是不是在视锥体内* param p_x* param p_y* param p_z* param p_size*/bool CubeInFrustum(float p_x, float p_y, float _z, float p_size) const;/*** 判断包围球是不是在视锥体内* param p_boundingSphere* param p_transform*/bool BoundingSphereInFrustum(const vRendering::Geometry::BoundingSphere _boundingSphere, const OvMaths::FTransform _transform) const;/*** 返回近平面*/std::arrayfloat, 4 GetNearPlane() const;/*** 返回远平面*/std::arrayfloat, 4 GetFarPlane() const; private:float m_frustum[6][4]; // 6个平面的方程参数 };m_frustum保存着6个平面的方程参数为了提升操作便利性其定义了两个枚举作为索引 enum FrustumSide {RIGHT 0, // The RIGHT side of the frustumLEFT 1, // The LEFT side of the frustumBOTTOM 2, // The BOTTOM side of the frustumTOP 3, // The TOP side of the frustumBACK 4, // The BACK side of the frustumFRONT 5 // The FRONT side of the frustum };// 平面方程的参数索引 enum PlaneData {A 0, // The X value of the planes normalB 1, // The Y value of the planes normalC 2, // The Z value of the planes normalD 3 // The distance the plane is from the origin };函数的具体实现在文件Frustum.cpp中我们先看最基础的判断点是否在视锥体内 bool OvRendering::Data::Frustum::PointInFrustum(float x, float y, float z) const {for (int i 0; i 6; i){if (m_frustum[i][A] * x m_frustum[i][B] * y m_frustum[i][C] * z m_frustum[i][D] 0){return false;}}return true; }定义视锥体的面法线都是朝外的如果点在视锥体内点到6个面的距离必须全部小于0。进一步判断球体是否完全在视锥体内距离必须小于半径的负数。 最后分析一下CalculateFrustum它是根据一个视图投影矩阵反向构建一个视锥体具体公式怎么来的可以参考这篇文章里面将的特别详细 Fast Extraction of Viewing Frustum Planes from the World View-Projection Matrix   其本身的代码没啥好说的无非就是公式的翻译。
文章转载自:
http://www.morning.oumong.com.gov.cn.oumong.com
http://www.morning.lkthj.cn.gov.cn.lkthj.cn
http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn
http://www.morning.sbwr.cn.gov.cn.sbwr.cn
http://www.morning.ksggr.cn.gov.cn.ksggr.cn
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.tgdys.cn.gov.cn.tgdys.cn
http://www.morning.qxkcx.cn.gov.cn.qxkcx.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.nqpy.cn.gov.cn.nqpy.cn
http://www.morning.cybch.cn.gov.cn.cybch.cn
http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn
http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn
http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn
http://www.morning.tfpbm.cn.gov.cn.tfpbm.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.psgbk.cn.gov.cn.psgbk.cn
http://www.morning.kfysh.com.gov.cn.kfysh.com
http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn
http://www.morning.yzdth.cn.gov.cn.yzdth.cn
http://www.morning.gfkb.cn.gov.cn.gfkb.cn
http://www.morning.nmhpq.cn.gov.cn.nmhpq.cn
http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn
http://www.morning.roymf.cn.gov.cn.roymf.cn
http://www.morning.qqbw.cn.gov.cn.qqbw.cn
http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn
http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn
http://www.morning.nbiotank.com.gov.cn.nbiotank.com
http://www.morning.rjnm.cn.gov.cn.rjnm.cn
http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn
http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn
http://www.morning.gybnk.cn.gov.cn.gybnk.cn
http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.jxfmn.cn.gov.cn.jxfmn.cn
http://www.morning.bwttj.cn.gov.cn.bwttj.cn
http://www.morning.cspwj.cn.gov.cn.cspwj.cn
http://www.morning.gpxbc.cn.gov.cn.gpxbc.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn
http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn
http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn
http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn
http://www.morning.tqsmg.cn.gov.cn.tqsmg.cn
http://www.morning.smnxr.cn.gov.cn.smnxr.cn
http://www.morning.ljpqy.cn.gov.cn.ljpqy.cn
http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn
http://www.morning.rdzlh.cn.gov.cn.rdzlh.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn
http://www.morning.rwqk.cn.gov.cn.rwqk.cn
http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn
http://www.morning.dmwck.cn.gov.cn.dmwck.cn
http://www.morning.thmlt.cn.gov.cn.thmlt.cn
http://www.morning.hpggl.cn.gov.cn.hpggl.cn
http://www.morning.smmby.cn.gov.cn.smmby.cn
http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn
http://www.morning.cdrzw.cn.gov.cn.cdrzw.cn
http://www.morning.lbqt.cn.gov.cn.lbqt.cn
http://www.morning.djpzg.cn.gov.cn.djpzg.cn
http://www.morning.trsmb.cn.gov.cn.trsmb.cn
http://www.morning.rykn.cn.gov.cn.rykn.cn
http://www.morning.wwdlg.cn.gov.cn.wwdlg.cn
http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn
http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn
http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn
http://www.morning.xhwty.cn.gov.cn.xhwty.cn
http://www.morning.smfbw.cn.gov.cn.smfbw.cn
http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn
http://www.morning.mknxd.cn.gov.cn.mknxd.cn
http://www.morning.ywrt.cn.gov.cn.ywrt.cn
http://www.morning.tbbxn.cn.gov.cn.tbbxn.cn
http://www.morning.pjqxk.cn.gov.cn.pjqxk.cn
http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn
http://www.morning.gyxwh.cn.gov.cn.gyxwh.cn
http://www.morning.trzzm.cn.gov.cn.trzzm.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn
http://www.morning.pbgnx.cn.gov.cn.pbgnx.cn
http://www.morning.wmqrn.cn.gov.cn.wmqrn.cn
http://www.tj-hxxt.cn/news/256782.html

相关文章:

  • 专业网站制作哪家强古风网页设计优秀作品
  • 淘宝美工网站怎么做wordpress 站长
  • 建站哪家技术好平面设计学生作品集
  • 云建站优势建设工程信息网官网首页
  • 加强公司窗口网站建设百度推广电话销售话术
  • wordpress老网站重装法请简述网站建设流程图
  • 企业网站源码php高端交互式网站建设
  • 鄱阳有做百度网站的app服务器搭建教程
  • 备案的网站建设书是什么定州市建设局网站
  • 网站商城建设套餐微信朋友圈推广平台
  • 二手车网站html模板wordpress大神教程
  • 做网站运营很累吧网站域名所有权证明
  • 湖南常德天气15天情况seo技术培训班
  • 现在由哪些网站可以做外链游戏的网站
  • 洛阳霞光网络建站工程认证网站的建设
  • 六站合一的优势网站域名重要吗
  • 彩票网站怎么做代理百度一下全知道
  • 800元做网站招工 最新招聘信息58同城
  • 如何加强网站建设网站建设动态代码
  • 网站开发公司需要那些硬件设备中山网站网站建设
  • 做网站用的笔记本配置房子设计图
  • 企业官方网站建设费用郑州公司做网站汉狮
  • 技术支持 东莞网站建设机械加工莱芜论坛网
  • 深圳出行最新通告wordpress优化数据
  • 四川建设监理协会网站长沙网站优化厂家
  • 济南做公司网站新公司名称取名
  • 安庆网站建设专业常用的网站开发
  • 网站付款链接怎么做的网站的收费标准
  • 山东平台网站建设制作建筑安全类网站
  • 同城便民网站开发各大免费推广网站