android - 寻找 post/pre/set Translate 的解释(在 Matrix 对象中)以及如何使用它们

标签 android matrix bitmap android-canvas

documentation对于使用这些方法时实际发生的情况非常模糊。有人能解释一下 Matrix 是如何影响它被设置的位图的吗?他们在那里使用了术语连接,但我不清楚该术语如何应用于坐标数据(之前仅在字符串操作方面使用过)。

最佳答案

set-methods 将用新值替换当前 Matrix,而不管 Matrix 之前包含的任何内容。 pre 和 post 方法将在当前 Matrix 包含的任何内容之前或之后应用新的转换。

在这个例子中,旋转将被忽略,因为我们使用的是 set 方法,而 m 将只包含一个平移:

Matrix m = new Matrix();

m.setRotate(90);

m.setTranslate(100, 100);

在本例中,最终矩阵将是一个平移,然后是一个旋转:

Matrix m = new Matrix();

m.setTranslate(100, 100);

m.postRotate(90);

在最后一个例子中,最终的矩阵将是一个旋转,然后是一个平移:

Matrix m = new Matrix();

m.setTranslate(100, 100);

m.preRotate(90);

这篇(相当长的)帖子中有更多信息:

https://medium.com/a-problem-like-maria/understanding-android-matrix-transformations-25e028f56dc7

希望对你有帮助。

关于android - 寻找 post/pre/set Translate 的解释(在 Matrix 对象中)以及如何使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8197656/

相关文章:

android - 在 Android ViewModel 中注入(inject)依赖项?

java - 给定图上无向图 BFS 的 “Adjacency Matrix” 表示并输出顶点

algorithm - 使用法线沿二维平面置换 3D 顶点

c++ - 为什么我的程序在输入矩阵值时崩溃?

c# - 在 UWP C# 中从图像中获取主色

c++ - 如何将opencv mat图像转换为gdi位图

android - android中Viewpager Controller 的速度减慢

android - Android中录制的wav文件的快速傅里叶变换

android - 如何在android中动态地使形状可拖动和调整大小

c - 从文件中读取模式并在 C 中创建该模式的 bmp 图像