Как сделать жесты повышения на iPhone?

Существует Railscast при профилировании, которое это определенно стоит следить

http://railscasts.com/episodes/98-request-profiling

11
задан RexOnRoids 10 July 2009 в 03:58
поделиться

3 ответа

Вам нужно реализовать это самостоятельно, используя некоторую базовую математику.

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

Это методы делегирования, которые вам необходимо реализовать в вашем приложении.

Вам необходимо определить расстояние между ними. касаний, а затем вычислить изменения расстояния в вашем собственном коде.

Математическое уравнение, которое вы используете для получения расстояния, называется скалярным произведением.

Я просто хочу указать, что уравнение, которое они используют в цитированном учебник неверен. Я обновил его, включив в него абсолютное значение, которое пропущено в учебнике.

Это точечный продукт:

- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
    float xDist = fromPoint.x - toPoint.x;
    float yDist = fromPoint.y - toPoint.y;

    float result = sqrt( pow(xDist,2) + pow(yDist,2) );
    return result;
}

Изменить: Я ошибся в своем предыдущем ответе ... Я давно не занимался подобными вычислениями.

Если вы не извлечете квадратный корень из результата, вы не получите истинного расстояния между точки. Это называется вычислением величины между двумя векторами.

Это правильный способ сделать это. Если вы хотите опустить sqrt, у вас не будет точного расстояния между двумя точками.

Если вы не возведете в квадрат ответ, ваш код будет работать, но он будет использовать измерения, которые намного превышают фактические значения . Так что в будущем, если вам нужно будет получить расстояние между двумя точками, он вернет что-то вроде 90000 вместо фактического расстояния в пикселях, которое будет составлять 300 пикселей.

8
ответ дан 3 December 2019 в 04:53
поделиться

Если вы ищете простой пример кода щипкового жеста, я использую метод, описанный Броком в примере приложения , которое я описываю здесь (в предпоследней и последней версиях приложения на этой странице). Щипковые жесты используются для масштабирования пары основных слоев анимации в этом примере.

Все, что он описывает в отношении расчета расстояния, - это просто теорема Пифагора, применяемая между двумя точками (с расстояниями X и Y как двумя сторонами прямоугольный треугольник).

1
ответ дан 3 December 2019 в 04:53
поделиться

hmmm.....it seems that some people are extremely confused on how to use basic math. the dot product is totally irrelavent and just confuses the issues. dot prod between 2 vectors is used to calculate the angle between them.

You actually need to use pythagorus theorem. Dot is NOTHING to do with finding distance between points - only pythagorous!

6
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: