博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
平面的空间转换
阅读量:6831 次
发布时间:2019-06-26

本文共 956 字,大约阅读时间需要 3 分钟。

  hot3.png

对于图形学来说,空间转换通常与Vector4(x,y,z,w) 与Matrix联系在一起。

最常见的是model space向world space的转换。

Matrix4x4 WorldTransformMatrix;
Vector4 ModelPos;
Vector4 WorldPos 
=
 ModelPos 
*
 WorldTransformMatrix;

 相应的,从world space向model space转换就是逆矩阵做一个转换即可

Matrix4x4 Inverse 
=
 WorldTransformMatrix.Inverse();
ModelPos 
=
 WorldPos 
*
 Inverse;

---------------------------------------------------------------------------------------------------------------------------------------------------

今天遇到的问题和平面的空间转换有关。

简单说来就是给定从model space转换到world space的矩阵,mWorldTransform,如何把一个world space平面plane( x,y,z,w )转换到model space.

答案是:plane* mWorldTransform.Transpose();

推导:

平面定义为,

dot(WorldPos , plane)==0;

换算成现行代数矩阵既是WorldPos * plane.transpos() = 0;

WorldPos = ModelPos* WorldTransform;==>

ModelPos*WorldTransform*plane.Transpose() =0;==>

ModelPos* (plane* WorldTransform.Transpose).Transpose = 0;==>

平面从world space转入model space是用WorldTransform.Transform做即可。

原文链接:

转载于:https://my.oschina.net/dtec/blog/44841

你可能感兴趣的文章
mvc:annotation-driven涉及HttpMessageConverters的源码
查看>>
JS-数据类型-对象Object
查看>>
如何使用 rsync 的高级用法进行大型备份
查看>>
流计算框架 Flink 与 Storm 的性能对比
查看>>
全站HTTPS升级系列(三)nginx配置全站HTTPS
查看>>
自定义滚动条的实现思路与关键算法
查看>>
ES6 - 变量的解构赋值解析
查看>>
建立自己的编程世界
查看>>
起早贪黑几个月,我写完了人生第一本书!
查看>>
let、const、var
查看>>
JavaScript Promise 对象
查看>>
Stylus在VUE2.0以上的使用
查看>>
Android:Activity与Fragment、Service之间的数据通信
查看>>
深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8
查看>>
Android网络请求练习
查看>>
Halo 博客系统 -0.4.0 发布
查看>>
golang 介绍以及踩坑之四
查看>>
Shiro-集成验证码
查看>>
最全Drawable基础总结
查看>>
(十六)java版电子商务spring cloud分布式微服务b2b2c社交电商-用restTemplate消费服务...
查看>>