1656
Комментарий:
|
1733
|
Удаления помечены так. | Добавления помечены так. |
Строка 3: | Строка 3: |
При работе с растровой графикой очень частая операция — масштабирование объектов. Суть операции в том, чтобы точку ''X,,0,,'' в диапазоне от ''A,,0,,'' до ''B,,0,,'' превратить в точку ''X,,1,,'' в диапазоне от ''A,,1,,'' до ''B,,1,,'' с соблюдением пропорций: | == Масштабирование == При работе с растровой графикой очень частая операция — масштабирование объектов. Суть операции в том, чтобы число ''X,,0,,'' в диапазоне от ''A,,0,,'' до ''B,,0,,'' превратить в число ''X,,1,,'' в диапазоне от ''A,,1,,'' до ''B,,1,,'' с соблюдением пропорций: |
Строка 10: | Строка 11: |
{{{!python | {{{#!python |
Строка 35: | Строка 36: |
== Поворот == '''TODO''' |
Перенос, масштабирование и вращение
Масштабирование
При работе с растровой графикой очень частая операция — масштабирование объектов. Суть операции в том, чтобы число X0 в диапазоне от A0 до B0 превратить в число X1 в диапазоне от A1 до B1 с соблюдением пропорций:
Значение X0 сначала надо нормализовать: перевести из диапазона A0…B0 в диапазон 0…1. Для чего из X0 надо вычесть нижнюю границу диапазона A0 и поделить результат на длину диапазона B0-A0: X=(X0-A0)/(B0-A0)
Затем перевести в новый диапазон A1…B1 теми же операциями в обратном порядке. Получаем функцию переноса с масштабированием scale():
Проверим, как это выглядит с помощью Черепашки:
Поворот
TODO