gpt4 book ai didi

android - 在Android中,Matrix类的mapRect api执行什么样的转换?

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:55 26 4
gpt4 key购买 nike

我想知道Android中Matrix类下可用的mapRect api的功能。如果我有一个样本矩阵 A 和矩形 R,那么对于

RectF R = new RectF(t1,t2,t3,t4);

A.mapRect(R);

R 可能会发生什么样的转换。如果有人能用一些合适的例子来说明 mapRect() api 会更有帮助。

最佳答案

这是一个非常简单的例子:

让我们采用一个矩阵:

Matrix matrix = new Matrix();

设置该矩阵以将所有内容缩放两倍:

matrix.setScale(2.0F, 2.0F);

创建一个 10x10 的矩形,原点在左上角:

RectF rect = new RectF(0F, 0F, 10F, 10F);

所以当我们调用

matrix.mapRect(rect);

我们创建的输入矩形替换为输出矩形,这是转换输入的结果:

rect.left = 0F;
rect.top = 0F;
rect.right = 20F;
rect.bottom = 20F;

还有一个版本的方法

matrix.mapRect(RectF dst, RectF src);

执行相同的转换而不影响输入矩形。


什么是矩阵?

考虑一面镜子。镜子拍摄您的图像并创建图像的水平翻转版本。

考虑一个麦克风和一个放大器。他们会听取您的声音并创建一个更大声的声音版本。

这就是矩阵。这是一个变压器。它接受输入并创建基于输入的输出。所以一个矩阵可以变换一个点、一个矩形、一个圆、一个多边形……

有关更多信息,请参阅我的回答 How does Matrix.postScale( sx, sy, px, py) work?

另请查看 Affine transformations | Wikipedia .有一个很棒的图形显示了不同的仿射变换及其效果。

关于android - 在Android中,Matrix类的mapRect api执行什么样的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com