Как именно вывести расстояние между двумя точками касания в Xcode для iOS? - PullRequest
4 голосов
/ 27 апреля 2011

Вот моя цель: чтобы пользователь коснулся двух разных точек на экране, и приложение выведет число, представляющее расстояние между этими точками. Как мне это сделать?

Ответы [ 2 ]

11 голосов
/ 27 апреля 2011

На простом уровне вы можете просто использовать метод теоремы Пифагора для вычисления расстояния между двумя точками следующим образом.

double distance = sqrt(pow((x2 - x1), 2.0) + pow((y2 - y1), 2.0));

Я предполагаю, что вы используете метод - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event (после регистрациив качестве UIResponder и получения нескольких касаний через [self setMultipleTouchEnabled:YES];), в этом случае вы можете извлечь значения CGPoint .x и .y, извлекая предоставленные UITouch es из NSSet и используяlocationInView метод для получения CGPoint для рассматриваемого касания.

Если вы не использовали эти классы раньше, я бы хотел прочитать:

Однако, если вы еще не использовали такие вещи раньше, я бы также рекомендовал прочитать Руководство по обработке событий для iOS документация, чтобы дать вам хорошее заземление.(Вы также можете сделать шаг назад и воспользоваться документами Создание приложения для iPhone , так как они содержат довольно много подробностей (вместе с исходным кодом) о том, как вы можете захватывать сенсорные события и т. Д..)

2 голосов
/ 27 апреля 2011

Когда вы получаете событие касания, вы получаете его координаты xy. Вы можете использовать эту формулу, которую мы все выучили в начальной школе, d = sqrt((x_2 - x_1)^2 + (y_2 - y_1)^2)). Это даст вам расстояние в пикселях между ними. Iphone4 имеет 326 точек на дюйм, поэтому разделите полученное расстояние на 326, и вы получите оценку расстояния между касаниями в дюймах.

...