Ну а теперь о самом интересном – о мультитаче. Вообще, как вы думаете, откуда такое слово пошло? Правильно, от английского «multi-touch», что означает «несколько нажатий» или даже «много нажатий». Примечательно, что именно multi touch, a не double touch (двойное нажатие), а почему я это особо отметил попытаюсь пояснить ниже.
Итак, настоящий мультитач, реализованный, например, в iPhone – это когда отслеживаются координаты каждого нажатия. Хоть десятью пальцами коснитесь экрана – и электроника будет знать координаты каждого пальца. Поэтому на айфоне можно делать такие штуки, как имитация музыкальных инструментов, например. Взять ту же гитару – чтобы распознать аккорд, нужно отследить каждое нажатие и все эти нажатия присутствуют одновременно. Однако, во всяких там HTC Hero, Gigabyte G1305 и прочих используется ненастоящий, фейковый мультитач, поэтому там нет ничего интереснее масштабирования картинок. Как это делается? Сейчас поясню.
Возьмём обычный ёмкостный экран или резистивный экран. Если нажать сначала, к примеру, в правый верхний угол, а потом, не отпуская палец, другим пальцем нажать в левый нижний угол, то электроника будет считать координатами нажатия центр экрана, т.е. середину отрезка между двумя разными нажатиями. Это можно увидеть, если запустить какую-нибудь программу, визуально отслеживающую координаты нажатия. Как же реализуется масштабирование картинки в таком случае, если нажатие распознаётся всё равно одно?
А очень просто – и это чисто программный трюк. Итак, мы нажали на экран – электроника в курсе. Пусть это будет точка «А». Теперь мы, не отпуская палец, нажимаем в другое место экрана, в точку «В», при этом точка нажатия мгновенно сместилась в сторону, это у нас будет точка «С». Вот этот момент: когда отпускания пальца не произошло, а точка нажатия мгновенно (не плавно) переместилась в другое место, и будем считать началом обработки фейкового мультитача. Тут надо отметить, что координаты точки «В» электроники де-факто неизвестны, но их можно легко рассчитать: т.к. «В» лежит на прямой «АС» и расстояние «ВС» равно «АС» из особенностей технологии, описанных выше. Теперь если точка «С» вдруг начала приближаться к «А», значит пальцы сдвигаются – т.е. надо уменьшать картинку. Если же «С» отдаляется от «А» и приближается к «В» - значит, пальцы раздвигаются и картинку надо увеличить. Более того, если «С» начала описывать дугу вокруг «А» или «В» - значит один палец вращают вокруг другого и картинку можно в соответствующую сторону поворачивать. Если же в этот момент «С» мгновенно (не плавно) сместилась в другое место экрана – значит один палец отпустили и обработку фейкового мультитача надо прекратить и распознавать нажатие как единичное. Как видите – всё просто. Но никакой гитары таким методом не реализуешь, ибо мы не знаем точного расположения даже двух пальцев.