@iwantcoolname ссылки в описании. Вобщем если только скейл — то или жёстко, но ломается масштаб (это и есть суть жёсткости), или жёстко только по одной оси, или пляшем по пути расчёта расстояния между точками (и тогда точки неизбежно плавают, само фото относительно центра — это уж зависит от имплементации разработчиком). Этот пример с тремя жестами держит точки более-менее, плавает из-за природы алгоритмов, когда изменения сообщаются дельтами от предыдущего, получается в рамках приличного, вроде
@iwantcoolname пардон, не уловил.. Это полный трансформ? Мы про скейл отдельно говорили вроде? Ну вообще да, можно написать специальный точный free-transform-"жест". Делаете pull request?)
@pavelfljot 3. совмещаем левые точку, потом поворачиваем вокруг них так, чтобы правые были на одной линии, и наконец вычисляем масштаб для того, чтобы правые точки совпали. не ленимся :)
2. !lockAspectRatio — следим за изменениями точек по каждой оси. Событие приходит с самостоятельными scaleX и scaleY. Тут уже зависит, как будем изменять UI. Можно напрямую применить эти масштабы — получим эффект как за два гвоздя в резиновую фото. Можно сохранить позиции пальцев по одной оси, применив соответствующий scale, а по другой оси можно применить такой же, сохранив пропорции. Но первый способ "на ощупь" более натуральный.
@iwantcoolname попробуйте демку — станет всё ясно. По сути два возможных способа скейла:
1. lockAspectRatio — следим за изменением расстояния между точками ("как везде"). По сути алгоритма точки не предполагают прилипать. Событие приходит с равными scaleX и scaleY.
Great demo!
AleksandrKoz 1 month ago
cool framework. thanks
Amerdababneh123 3 months ago
@iwantcoolname ссылки в описании. Вобщем если только скейл — то или жёстко, но ломается масштаб (это и есть суть жёсткости), или жёстко только по одной оси, или пляшем по пути расчёта расстояния между точками (и тогда точки неизбежно плавают, само фото относительно центра — это уж зависит от имплементации разработчиком). Этот пример с тремя жестами держит точки более-менее, плавает из-за природы алгоритмов, когда изменения сообщаются дельтами от предыдущего, получается в рамках приличного, вроде
pavelfljot 9 months ago
@pavelfljot и не, я говорил про котика в районе 4:13 там есть поворот, но он не жёсткий
iwantcoolname 9 months ago
@pavelfljot куда смотреть, где править?
iwantcoolname 9 months ago
@iwantcoolname пардон, не уловил.. Это полный трансформ? Мы про скейл отдельно говорили вроде? Ну вообще да, можно написать специальный точный free-transform-"жест". Делаете pull request?)
pavelfljot 9 months ago
@pavelfljot 3. совмещаем левые точку, потом поворачиваем вокруг них так, чтобы правые были на одной линии, и наконец вычисляем масштаб для того, чтобы правые точки совпали. не ленимся :)
iwantcoolname 9 months ago
@iwantcoolname
2. !lockAspectRatio — следим за изменениями точек по каждой оси. Событие приходит с самостоятельными scaleX и scaleY. Тут уже зависит, как будем изменять UI. Можно напрямую применить эти масштабы — получим эффект как за два гвоздя в резиновую фото. Можно сохранить позиции пальцев по одной оси, применив соответствующий scale, а по другой оси можно применить такой же, сохранив пропорции. Но первый способ "на ощупь" более натуральный.
pavelfljot 9 months ago
@iwantcoolname попробуйте демку — станет всё ясно. По сути два возможных способа скейла:
1. lockAspectRatio — следим за изменением расстояния между точками ("как везде"). По сути алгоритма точки не предполагают прилипать. Событие приходит с равными scaleX и scaleY.
pavelfljot 9 months ago
@pavelfljot а что мешает сохранять пропорции, когда всего две точки?
iwantcoolname 9 months ago