iOS - Pomoc matematyczna - podstawowe powiększenia obrazu z gestem uszczypnięcia wymagają nałożenia obrazów dopasowania względnych X / Y

Mam aplikację na iPada, która ma podstawowy obraz UIImageView (w tym przypadku duży budynek lub plan terenu lub diagram), a następnie wiele „szpilek” można dodać do planu (wizualnie podobnych do Google Maps). Te piny są także UIImageViews i są dodawane do głównego widoku gestów na stuknięciu. Obraz podstawowy jest również dodawany do głównego widoku w viewDidLoad.

Mam obraz bazowy działający z gestem szczypania do powiększania, ale oczywiście podczas powiększania obrazu podstawowego wszystkie szpilki pozostają w tych samych współrzędnych x i y widoku głównego i tracą tam względne położenie na obrazie podstawowym (którego x, y i szerokość, współrzędne wysokości uległy zmianie).

Do tej pory mam to ...

- (IBAction)planZoom:(UIPinchGestureRecognizer *) recognizer;
{
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;

    for (ZonePin *pin in planContainer.subviews) {
        if ([pin isKindOfClass:[ZonePin class]]){
            CGRect pinFrame = pin.frame;

            // ****************************************
            // code to reposition the pins goes here...
            // ****************************************

            pin.frame = pinFrame;
        }
    }
}

Potrzebuję pomocy, aby obliczyć matematykę, aby zmienić położenie współrzędnych x / y, aby zachować tam względną pozycję na powiększonym lub pomniejszonym planie / diagramie. Kołki oczywiście nie chcą być skalowane / powiększane w ogóle ze względu na ich szerokość lub wysokość - po prostu potrzebują nowych współrzędnych x i y, które są względne w stosunku do początkowych pozycji na planie.

Próbowałem samodzielnie obliczyć matematykę, ale z trudem udało mi się ją przetestować i niestety nie jestem jeszcze zaznajomiony z zestawem SDK na tyle, by wiedzieć, czy istnieje wbudowane narzędzie do pomocy, czy nie.

Pomoc w rozwiązaniu tego problemu związanego z matematyką byłaby naprawdę mile widziana! :)

Wielkie dzięki, Michael. InNeedOfMathTuition.com

questionAnswers(2)

yourAnswerToTheQuestion