Я наконец-то дошел до сути.
Следующий вопрос, который я опубликовал после того, как решил, в чем заключалась реальная проблема, объясняет, почему преобразования координат ведут себя так, как они:
В ответе на этот вопрос @TemaniAfif показывает, как вычисляется окончательная матрица преобразования и применяется к координатам графического элемента, вчтобы отобразить его из системы координат области просмотра в конечную пользовательскую систему координат.
Короче говоря, при применении преобразований мы фактически копируем текущую пользовательскую систему координат, а затем переводим ее относительно текущейпользовательская система координат, из которой мы скопировали.В SVG исходная пользовательская система координат (до viewBox или любых преобразований) идентична исходной системе координат видового экрана.
Цепные / вложенные преобразования применяются к системе координат слева направо / снаружи-в , чтобы достичь конечной системы координат, в которой могут отображаться графические элементы.Обратите внимание, что вложенные преобразования имеют тот же эффект, что и цепные преобразования для одного элемента.
Как это на самом деле работает?Что ж, каждое преобразование имеет предопределенную аффинную матрицу преобразования, не связанную с CSS / SVG.Есть несколько статей в Википедии, в которых показаны матрицы, например:
Чтобы отобразить координаты элемента вконечная пользовательская система координат, мы умножаем матрицы друг на друга, слева направо (в порядке, в котором они были записаны в исходном коде), чтобы достичь окончательной матрицы преобразования.
Обратите внимание, что, поскольку мы умножаемпреобразовать матрицы в том порядке, в каком они написаны в нашем исходном коде, и поскольку AxB отличается от BxA при умножении матриц, порядок, в котором преобразования записываются в нашем исходном коде, имеет значение.
Наконец, мы затем умножаемкоординаты x и y для нашего элемента с этой окончательной матрицей преобразования, чтобы увидеть, как каждая координата отображается из системы координат видового экрана в конечную пользовательскую систему координат.
Для таких склонных было бы проще не подумайте над вышесказанным и просто мысленно представьте, что цепочечные / вложенные преобразованияприменяется к самому элементу (не к пользовательским системам координат) справа налево / наизнанку (т.е. в обратном порядке того, как он был применен к системам координат).
Представляете ли вы мысленно, что вы преобразуетеСистемы координат слева направо, а затем отобразить в графическом элементе, или вы преобразуете сам элемент, применяя преобразования справа налево, конечный результат будет таким же.
Соответствующие характеристики
Примечание
Для этого вопроса не имеет значения, применяются ли преобразования к элементам SVG или элементам HTML.Применяется та же механика преобразования.