Какова связь между холстом и матрицей в Android?

Я прочитал этот обзор холста:

Класс Canvas содержит призывы «draw». Чтобы нарисовать что-то, вам нужно 4 основных компонента: битмап для хранения пикселей, холст для размещения вызовов рисования (запись в растровое изображение), примитив рисования (например, Rect, Path, текст, растровое изображение) и краска (до Описать цвета и стили для чертежа).

Может ли кто-нибудь объяснить полотно более четко?

И я смущен насчет взаимосвязи между холстом и матрицей. Ли холст принимает преобразования из матрицы? И я хочу знать, влияет ли функция ниже на холст?

canvas.drawBitmap(bitmap, matrix, paint); 

Другими словами, матрица холста отличается от матрицы растрового изображения?

Я спросил об этом, потому что, когда я использую canvas.drawBitmap а затем используя canvas.concat() а затем рисует любой объект, этот объект принимает те же преобразования на холсте, поэтому я думаю, что холст и растровое изображение имеют одну и ту же матрицу!

    Они разные. При использовании холста для рисования растрового изображения, обеспечивающего матрицу, внутренне предоставленная матрица конкатенируется с текущей матрицей холста.

    Другими словами, вызов canvas.drawBitmap(rectBitmap, matrix, paint); Имеет тот же эффект:

      canvas.save(); canvas.concat(matrix); canvas.drawBitmap(rectBitmap, 0, 0, paint); canvas.restore(); 

    Это объясняет, почему ваш объект принимает те же самые преобразования, потому что вы вызываете canvas.concat(matrix); И после этого рисует объект.