Java 什么是矩阵&x27;s mapPoints()方法用于?它有什么作用?

Java 什么是矩阵&x27;s mapPoints()方法用于?它有什么作用?,java,android,kotlin,matrix,Java,Android,Kotlin,Matrix,Android开发者关于Matrix mapPoints()方法的文档中说 将此矩阵应用于src指定的2D点阵列,并将转换后的点写入dst指定的点阵列。这两个数组将它们的“点”表示为一对浮点数[x,y] 我完全不明白。它实际上做什么?我在互联网上搜索了该方法的解释,但没有找到解释。用于将矩阵变换(,通常)立即应用于点,如下所示 测试映射点的最小代码。 // Matrix components val mc = floatArrayOf( 1F, 2F, 3F, 10F, 20F

Android开发者关于Matrix mapPoints()方法的文档中说

将此矩阵应用于src指定的2D点阵列,并将转换后的点写入dst指定的点阵列。这两个数组将它们的“点”表示为一对浮点数[x,y]

我完全不明白。它实际上做什么?我在互联网上搜索了该方法的解释,但没有找到解释。

用于将矩阵变换(,通常)立即应用于点,如下所示

测试映射点的最小代码。

// Matrix components
val mc = floatArrayOf(
    1F, 2F, 3F,
    10F, 20F, 30F,
    0F, 0F, 1F
)

val m = Matrix()
m.setValues(mc)

val srcPoint = floatArrayOf(1F, 2F) // [0]=x [1]=y
val dstPoint = FloatArray(2)

m.mapPoints(dstPoint, srcPoint)

Log.i("MapPoints", dstPoint.joinToString { it.toString() }) // 8.0, 80.0

// Algebraic expression equivalent to the mapPoints() above

dstPoint[0] = mc[Matrix.MSCALE_X] * srcPoint[0] +
        mc[Matrix.MSKEW_X] * srcPoint[1] +
        mc[Matrix.MTRANS_X]

dstPoint[1] = mc[Matrix.MSKEW_Y] * srcPoint[0] +
        mc[Matrix.MSCALE_Y] * srcPoint[1] +
        mc[Matrix.MTRANS_Y]

Log.i("MapPoints", dstPoint.joinToString { it.toString() }) // 8.0, 80.0