CTM - это средство для сопоставления пространства пользователя с пространством устройства, поэтому первоначальный CTM сопоставит пространство пользователя по умолчанию с конкретным пространством вашего устройства.
Первоначально пространство пользователя составляет 72 единицы PostScript длядюйма, но в отличие от пространства на устройстве, оно бесконечно (с учетом ограничений библиотеки математики) делится.
По сути, это означает, что фактические значения зависят от разрешения базового устройства.
Таким образом, если базовое устройство имеет 96 точек на дюйм, то 72 единицы пространства PostScript пользовательского пространства = 96 пикселей устройства, поэтому каждая единица PostScript покрывает 96/72 = 1,3333 ... пикселей устройства. При 300 т / д 72 единицы измерения PostScript в пользовательском пространстве по умолчанию будут покрывать 300 пикселей устройства, поэтому 1 единица PostScript будет охватывать 300/72 = 4,1666 ... пикселей устройства. И т. Д.
Оператор масштабирования (и другие операторы, которые изменяют CTM) просто изменяют отображение между пользовательским пространством и пространством устройства. Таким образом, если мы начнем с разрешения 144x144, то CTM будет равен [2 0 0 2 0 0], каждая единица PostScript в пользовательском пространстве покрывает 144 пикселя устройства в пространстве устройства, поэтому 1 единица = 1 дюйм. Если затем применить шкалу 2 2, CTM становится [4 0 0 4 0 0], поэтому каждая единица в пользовательском пространстве теперь покрывает 296 пикселей устройства или 2 дюйма при 144 dpi.