首页 > 解决方案 > Android Matrix preConcat 还是 postConcat?

问题描述

我正在使用 kotlin 进行 Android 开发。

我在屏幕上有一个圆形和一个矩形。

现在,当我在屏幕上拖动时,我想将它们倾斜在一起。我想我应该将偏斜矩阵发布到圆圈中。这是代码:

                _baseX = _bounds.centerX()
                _baseY = _bounds.top

                _square._matrix.setSkew((event.x - _baseX) / _bounds.height(), 0f, _baseX, _baseY)
                val m = Matrix(_originalMatrix)
                m.postConcat(_square._matrix)
                _circle._matrix = m
                _view.postInvalidate()

_originalMatrix 是为 circle 复制的,不会改变。

然而,圆圈向另一个方向倾斜:

postConcat 的结果

我也试过preConcat,但结果是一样的:

结果与 preConcat

我知道偏斜矩阵是正确的,因为我看到正方形正确偏斜。这里的圆圈应该用什么?非常感谢!

标签: androidkotlin

解决方案


推荐阅读