from:版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者允许不得转载。

什么是透视图投射矩阵perspective projective matrix?

空间物体的坐标乘以投射矩阵,那么就可以把空间的物体投射到屏幕上。

大体是这样的矩阵:

这里探讨一个问题:为什么乘以这个矩阵就可以把空间物体投射到屏幕上了呢?

看看下面的图:

其中的Projection Window就是我们的屏幕位置。

我们需要把所有两条斜边和Near Plane 和Far Plane之中的所有物体影像投影到Projection Window中显示出来。

如下图:

就是要把y投影到Projection Window成为y`

这个时候要计算y`的位置。如果是三维空间,那么原y的坐标点是(x,y,z),那么在平面上的点的坐标就为(x`,y`,d)

为什么最后是d。因为Projection Window平面的方程就是z = d,这个平面上的所有点的z轴都为d。

这样需要使用稍微复杂一点的数学知识计算,就会得到从坐标点(x,y,z)到(x`,y`,d)的计算公式,然后这个公式使用矩阵的形式表示出来,就得到了这里所要说的perspective projective matrix.(这里省去其中的数学知识讨论)。

最后就利用这一个矩阵就会神奇地把空间坐标投影到屏幕上了。

对应的directx代码:

[cpp] view plain copy
  1. XMMATRIX P = XMMatrixPerspectiveFovLH(0.25f*XM_PI,AspectRatio(), 10.0f, 100.0f);

掌握了这个知识点,就不会觉得这个函数是那么神秘的了,自己也能写出来。

当然恶补一下其中的数学知识,并加以练习应该理解会更加深。

毕竟这些数学的知识加上三维空间的东西,我觉得就构成了计算机学科中最难理解的方向(之一?)了。

转载于:https://www.cnblogs.com/decode1234/p/7738813.html

图形学思考 - 聊聊透视图投射矩阵perspective projective matrix相关推荐

  1. 程序员能力矩阵 Programmer Competency Matrix

    [译文]程序员能力矩阵 Programmer Competency Matrix [译文]程序员能力矩阵 Programmer Competency Matrix 注意:每个层次的知识都是渐增的,位于 ...

  2. [译文]程序员能力矩阵 Programmer Competency Matrix

    [译文]程序员能力矩阵 Programmer Competency Matrix 注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识. 计算机科学 Computer Sc ...

  3. android 编程 输入矩阵,Android中Matrix的pre post set方法理解

    虽说以前学习过线性代数和图形学原理,但是在实际中碰到matrix还是疑惑了好一阵子,今天通过向同事请教终于找到一点门路,特总结如下: Matrix主要用于对平面进行缩放,平移,旋转以及倾斜操作,为简化 ...

  4. R语言使用psych包进行探索性因子分析EFA、使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix into correlation matrix)

    R语言使用psych包进行探索性因子分析EFA.使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix transform into correlati ...

  5. R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.使用编写的自定义函数可视化混淆矩阵(confusion matrix) 目录

  6. sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)

    sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录

  7. sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)

    sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录

  8. R语言构建混淆矩阵(仿真数据)并基于混淆矩阵(confusion matrix)计算并计算Accuracy、Precision、Recall(sensitivity)、F1、Specificity指标

    R语言构建混淆矩阵(仿真数据)并基于混淆矩阵(confusion matrix)计算并计算Accuracy.Precision.Recall(sensitivity).F1.Specificity指标 ...

  9. 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?

    混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR.TPR.FDR.ACC.PPV.NPV分别是什么?对应的概念及公式是什么? 目录

最新文章

  1. CentOS 7下编译安装Open Babel2.4.1和python绑定
  2. 一些意想不到的小bug。
  3. win8.1平板安装ubuntu16.04的折腾
  4. CSS3学习——设计优雅的数据表格
  5. spring-DataSource
  6. 用python实现打开虚拟机_如何使用python从虚拟机读取文件
  7. 视频容器与编解码器的区别
  8. python语言与c语言相比在分支结构上有什么不同,python 基础教程之语法篇章——一小时入门python__对比python与C语言的语法异同...
  9. jquery中的ajax 网络请求
  10. java多态 重写(override)的调用优先级
  11. 高通如何通过9008端口读取EMMC的分区
  12. 时间管理工具推荐,助你实现高效能,慢生活
  13. 这样的文件操作有点玄——文件流学习 ( 二 )
  14. Pytorch扫盲 - 安装、训练、测试、可视化、网络结构、finetune、loss
  15. [转]优秀程序设计的Kiss原则(keep it simple,stupid)
  16. 阿里云ECS训练营Class6
  17. 计算机三级的英语单词,大学英语三级词汇表(新版)资料.doc
  18. math sub Java_java初学减法运算
  19. 博士第六年还没有发Paper是一种什么样的体验?
  20. php方法重写:Declaration of should be compatible with that

热门文章

  1. 基于QT的串口调试助手
  2. java jode_Java中joda日期格式化工具的使用示例
  3. Windows10切换屏幕
  4. 印度狂妄,华为和中兴在印度5G设备市场面临不确定性,三星却已占领市场
  5. TRUST 2018可信区块链峰会即将召开
  6. GIT使用—创建一个版本库
  7. 微信短视频去水印小程序搭建教程(含源码),超级详细哦,支持流量主的
  8. 贝壳创始人左晖去世,一周前才成地产新首富
  9. 计算机狐狸标志的程序,Firefox 推出新 logo,这只狐狸长这样子
  10. Elasticsearch 安装配置及学习