Преобразования в 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 вместо.

Другие вопросы по тегам