Je travaille sur la création d'un moyen pour un utilisateur de déplacer des polygones à l'écran et changer leur forme en faisant glisser leurs sommets de coin. Je dois ensuite être capable de redessiner ces polygones modifiés sur d'autres appareils - je dois donc pouvoir obtenir les positions finales de tous les sommets pour tous les polygones à l'écran.Est-il possible d'obtenir des points de contrôle de courant UIBezierPath après la transformation du chemin?
C'est ce que je fais actuellement:
Je dessine des polygones à l'aide UIBezierPath
pour chaque forme de la substitution de la fonction drawRect
. Je permets ensuite à l'utilisateur de les faire glisser autour de l'écran en appliquant la fonction CGAffineTransformMakeTranslation
et les deltas de coordonnées et y
en touchedMoved
. J'ai les points de contrôle initiaux à partir desquels les polygones initiaux sont dessinés (comme décrit here). Mais une fois qu'une instance de chemin est déplacée sur l'écran, ces valeurs ne changent pas - ainsi je suis seulement capable d'obtenir des valeurs initiales.
Y a-t-il quelque chose dans la structure Core Graphics
qui va me permettre de saisir un ensemble de points de contrôle en cours dans une instance UIBezierPath
? J'essaie d'éviter de garder une trace de ces points manuellement. Je vais envisager d'utiliser d'autres moyens de tirer si:
- Il est construit - de manière à détecter si un point se trouve dans ce polygone (comme
UIBezierPath#contains
méthode - Une façon d'introduire facilement des contraintes si l'utilisateur peut » t déplacer un polygone hors des limites de la superview (j'ai besoin du polygone entier pour être visible)
- une façon de saisir tous les points facilement lorsque l'utilisateur se fait
- tout peut fonctionner sous 60fps sur iPhone 5.
Merci pour votre temps!