поддерживает положение в любом повороте - PullRequest
0 голосов
/ 22 декабря 2010


Я сделал некоторые рисунки на одном слое, теперь я хочу нарисовать то же самое на другом слое. Так что я сохранил все точки рисования, которые пользователь нарисовал на первом слое. А затем с помощью convertPoint: toLayer: метод преобразования сохраненной точки в другой слой. И это работает. Но создает проблемы в ориентации. Если бы я сделал рисунок в портрете. Тогда это будет работать только для портрета, в альбомной ориентации положение будет меняться. Поэтому, пожалуйста, предложите любой способ выбраться из этого.
Спасибо

1 Ответ

0 голосов
/ 22 декабря 2010

Нормализуйте сохраненные точки так, чтобы положения x, y относились к поверхности размером 0..1, 0..1 (разделите x, y на ширину и высоту текущей поверхности). Затем, когда вы захотите изменить размер базовой поверхности, умножьте каждую точку на ширину и высоту этой новой поверхности. Все точки теперь будут отображаться в одинаковых относительных положениях независимо от размеров поверхности.

Обратите внимание, что вышеупомянутое будет масштабироваться (переходя от портрета к пейзажу, Y будет сжат, а X расширен). Если вы не хотите этого делать, вам также необходимо учитывать физические размеры поверхности на экране. То есть вместо этого нормализуйте ваши очки к некоторому физическому измерению.

Примечание: я понятия не имею, какую систему, язык, пакет, библиотеку и т. Д. Вы используете, поскольку вы не указали в своем вопросе!

...