如何计算线性锥形变换矩阵
Posted
技术标签:
【中文标题】如何计算线性锥形变换矩阵【英文标题】:How to calculate a linear tapering transformation matrix 【发布时间】:2020-02-23 15:46:35 【问题描述】:我需要计算一个 4x4 矩阵(用于 OpenGL),它可以将左侧的 3d 对象转换为右侧的对象。仅在一个轴上应用变换。
编辑:
输入是要变形的给定 3d 对象(点)和变形量的单个变量。
图片表示投影到平面上的立方体,仅显示相关变化。垂直于视图平面的轴没有变化。
这两个物体的相对位置不相关,仅用于显示“前后”情况。
【问题讨论】:
有几种方法可以做到这一点。事实上,有无限多种方法可以做到这一点。由于视觉结果是 2D,但输入是 3D,因此无法确定使用哪个矩阵进行转换。 “只在一个轴上应用变换”是什么意思? 仅供参考:SO: How to paint / deform a QImage in 2D? 您的意思是 3×3 矩阵吗?在这种情况下,4×4 矩阵毫无意义。 @NicolBolas,请详细说明我的问题中缺少哪些信息? 【参考方案1】:************错误答案在这里*******
它与具有进一步透视划分的 2D 透视矩阵有些相反。所以,要反过来做这个“透视”的事情,你需要做一些与透视除法相反的事情,然后将结果乘以一个倒置的“透视”矩阵。虽然透视矩阵可能是倒置的,但我不知道什么是“与透视分割相反”。我认为你不能用矩阵来做到这一点。您必须改为转换每个顶点的 Y 坐标
【讨论】:
不幸的是它只创建了一个剪切矩阵 我很努力,但现在我觉得不可能了。编辑了答案。 我实际上设法使用最后一列几乎完成了我需要的工作,但它同时在两个轴上缩放。要是有可能取消一个轴上的变换就好了..以上是关于如何计算线性锥形变换矩阵的主要内容,如果未能解决你的问题,请参考以下文章
深度学习·理论篇(2023版)·第002篇深度学习和计算机视觉中的基础数学知识01:线性变换的定义+基于角度的线性变换案例(坐标变换)+点积和投影+矩阵乘法的几何意义+图形化精讲