- math/
- Math 将变换矩阵分解为正交矩阵和尺度矩阵
Math 将变换矩阵分解为正交矩阵和尺度矩阵
Math 将变换矩阵分解为正交矩阵和尺度矩阵,math,graphics,matrix,Math,Graphics,Matrix,如果我有一个来自缩放、平移和旋转变换的矩阵。我想把这个矩阵分成两个矩阵。一种是旋转+平移矩阵,另一种是尺度矩阵
因为我想计算正确的法向量变换,所以我只需要正交矩阵来计算曲面法向量
有什么想法吗?只是个想法-
将矩阵乘以单位向量(1/sqrt(3)、1/sqrt(3)、1/sqrt(3))
检查乘法后向量的长度
按该值的倒数缩放矩阵。现在有一个正交矩阵
使用找到的比例创建新的比例矩阵
如果我有一个来自缩放、平移和旋转变换的矩阵。我想把这个矩阵分成两个矩阵。一种是旋转+平移矩阵,另一种是尺度矩阵
如果我有一个来自缩放、平移和旋转变换的矩阵。我想把这个矩阵分成两个矩阵。一种是旋转+平移矩阵,另一种是尺度矩阵
因为我想计算正确的法向量变换,所以我只需要正交矩阵来计算曲面法向量
有什么想法吗?只是个想法-
如果我有一个来自缩放、平移和旋转变换的矩阵。我想把这个矩阵分成两个矩阵。一种是旋转+平移矩阵,另一种是尺度矩阵
我假设你所说的这个矩阵是一个4x4矩阵,被一些人广泛使用,被其他人普遍鄙视,第四行是0,0,0,1
我将使这两个操作“缩放”和“旋转+平移”。请注意:这些操作不是可交换的。缩放一个3矢量,然后旋转/平移该缩放矢量会产生一个与颠倒操作顺序不同的结果
案例1,操作是“旋转+平移”,然后是“缩放”。
设SR=S*R,其中S是具有正对角元素的3x3对角矩阵(缩放矩阵),R是3x3正交旋转矩阵。矩阵SR的行将相互正交,但列将不正交。比例因子是矩阵SR行的范数的平方根
算法:
给定4x4矩阵A,生成4x4缩放矩阵S,4x4旋转+平移矩阵T
A = [ SR(3x3) Sx(3x1) ]
[ 0(1x3) 1 ]
如上所述,将A划分为3x3矩阵SR和3向量Sx
构造标度矩阵S。前三个对角元素是矩阵SR行的向量范数;最后一个对角线元素是1
通过将A的每一行除以相应的比例因子,构造4x4旋转+平移矩阵T
案例2,操作是“缩放”,然后是“旋转+平移”。
现在考虑RS= R*S的情况。这里A的列将彼此正交,但是行将不是正交的。在这种情况下,比例因子是矩阵RS列范数的平方根
算法:
给定4x4矩阵A,生成4x4旋转+平移矩阵T,4x4缩放矩阵S
A = [ RS(3x3) x(3x1) ]
[ 0(1x3) 1 ]
如上所述,将A划分为3x3矩阵RS和3向量x
构造标度矩阵S。前三个对角元素是矩阵RS列的向量范数;最后一个对角线元素是1
通过将A的每一行除以相应的比例因子,构造4x4旋转+平移矩阵T
如果缩放不均匀(例如,缩放x×2、y×4、z×1/2),可以通过查看上部3x3矩阵的行和列的内积来判断操作顺序。最后缩放(我的案例1)意味着行内积将非常接近于零,但列内积将不为零。首先缩放(我的案例2)可以扭转这种情况。如果缩放是均匀的,就无法判断哪种情况是哪种情况。你需要事先知道
删除平移以获得3x3矩阵
通过SVD执行测试
当你说要计算正确的法向量变换时,我很困惑。如果你的矩阵是缩放、平移和旋转,那么它是正交的。你的意思是正交矩阵吗?如果矩阵是,。向量将被转换为。向量方向不对。我没有时间给出正确的答案,但这种分解是QR分解(在维基百科上查找)。此外,法线应该根据变换矩阵的倒数的转置进行变换(尽管它不再是单位长度)。QR有点过分,如果操作是缩放,则只会产生所需的答案,然后旋转+平移。如果操作是旋转+平移,则需要进行RQ分解,然后进行缩放。我可以这样做:先进行乘法,然后再进行缩放。向量*矩阵*(1/((1/sqrt(3),1/sqrt(3),1/sqrt(3))*矩阵)。剪切呢?如果同时包含剪力,是否也可以拆分剪力?
- Graphics 如何产生Photoshop笔划效果?
graphics
- Graphics 黑莓中的双缓冲?
graphicsblackberry
- Graphics 如何在Flex MXML文件中绘制圆?
graphicsgeometry
- Graphics “.OFF”描述
graphics3d
- Graphics 使用Mathematica中的操纵显示或隐藏组件
graphicswolfram-mathematica
- Graphics Mathematica中使用图形的条件着色
请考虑:
dalist = {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}, {4, 4, 4}, {5, 5, 5},
{1, 2, 1}, {2, 3, 1}, {3, 4, 1}, {4, 5, 1}, {5, 6, 1}}
graphicswolfram-mathematica
- Graphics 二维旋转方向
graphicscomputer-vision
- Graphics 如何提高边缘检测算法的精度?
graphicsopencv
- Graphics 深度缓冲区和Z轴
graphicsopengl-es3d
- Graphics 如何使用粒子系统使用混合器导出OBJ文件中的顶点法线(vn)
graphics3d
- Graphics 依赖树视图
graphicsdependencies
- Graphics LWJGL开始在显示器上运行低FPS
graphics
- Graphics 确定三角形所在的体素
graphics3dgeometry
- Graphics opengl和xwindows系统的区别是什么?
graphics
- Graphics 关于仿射变换(翻译)
graphicsgeometry
- Graphics 使用Open GL ES 2.0创建屏幕外表面
graphicsopengl-es
- Graphics 如何访问金属中传入的碎片着色器数据?
graphics
- Graphics 如何在Vulkan中获得下一个子过程的渲染结果?
graphics3d
- Graphics OpenSceneGraph:Don';t在绘制半透明对象时更新z缓冲区
问题:
graphics
- Graphics 在love2d程序中绘制直线
graphicslua