在 Android 中“预先合并”一个矩阵是啥意思?

Posted

技术标签:

【中文标题】在 Android 中“预先合并”一个矩阵是啥意思?【英文标题】:What does it mean to "preconcat" a matrix in Android?在 Android 中“预先合并”一个矩阵是什么意思? 【发布时间】:2010-04-23 01:01:50 【问题描述】:

审核中:http://developer.android.com/reference/android/graphics/Canvas.html

我想知道

translate(): "preconcat the current matrix with the specified translation" -- 这是什么意思?

我在互联网上的任何地方都找不到“preconcat”的良好定义!我唯一能找到它的地方是 Android Source - 我开始怀疑他们是否编造了它? :)

我熟悉“concat”或concatenate,也就是追加,那么什么是pre-concat?

【问题讨论】:

【参考方案1】:

在处理矩阵时,连接一词指的是乘法。

由于矩阵乘法不可交换,因此有一个单独的词用于反向乘法。 将a 预先连接到b 意味着设置a = b × a。 (相对于a = a × b,它会给出不同的矩阵)

【讨论】:

谢谢。我的问题是在 Android Canvas 的上下文中,但是我很难在画布和矩阵之间建立连接? @Brad:画布维护一个变换矩阵; translate 操纵它。 画布维护一个矩阵,并且画布由 OpenGL 中明确定义的方法操作。相关定义的重要来源是:gpwiki.org/index.php/OpenGL:Tutorials:Theory【参考方案2】:

这只是另一个例子,谷歌和他们的开发在代码中使用了单词和缩写。如果我运行权威,我会对此处以罚款。基本上,这意味着从右侧乘以现有矩阵,因为在向量转换中右侧的一个首先移动,因此它是“前”。例如,如果您想缩放图像并移动到另一个位置,您应该键入:

    mCanvas.translate(tx,ty);
    mCanvas.scale(sx,sy);
    mCanvas.drawBitmap(mBitmap,0,0,mPaint);

这与常识逻辑完全相反。

【讨论】:

以上是关于在 Android 中“预先合并”一个矩阵是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

VTK中,类vtkActor::GetMatrix(),这个4*4矩阵是啥意思??

scipy中的这个稀疏矩阵是啥意思?

matlab中reshape是啥意思

矩阵S=col(s1,s2,...),其中,s1,s2...是行向量,这里面的col是啥意思啊

混淆矩阵:真负数为 0 是啥意思?

在 Android 中,对接状态是啥意思