Преобразования в iOS и частичное масштабирование
Пожалуйста, поправьте меня, если я ошибаюсь: если у нас есть x=10, y=20, когда мы применяем преобразование к этим координатам (скажем, масштабирование x и y на 10), новые координаты будут x = 100 и y=200, Итак, если мы применяем масштабирование x на -1, мы получаем x= -10, y =20. Но почему это действие вызывает зеркальное отображение? не должен ли вид просто перерисовываться в новых координатах? Что мне здесь не хватает?
1 ответ
Не думайте об одной координате, думайте о диапазоне координат.
Если вы возьмете координаты (только здесь значение x) из... 0, 1, 2, 3, 4 и масштабируете их на 10, тогда они будут отображаться в 0, 10, 20, 30, 40 соответственно. Это будет растягивать ось X, поэтому вид будет выглядеть в 10 раз больше, чем изначально.
Если вы возьмете те же самые координаты x и масштабируете их на -1, они будут отображаться в 0, -1, -2, -3, -4 соответственно.
То есть пиксель, который находится дальше всего от источника (4), все еще находится дальше от источника, но теперь равен -4.
Каждый пиксель отражается через начало координат.
Так работает масштабирование в iOS, Android и общей математике.
Если вы просто хотите переместить вид, не меняя его размер, вы можете использовать translation
вместо.