J'apprécierais vraiment toute aide sur celui-ci. J'ai appliqué une transformation 3D sur une vue et j'ai besoin d'identifier les coordonnées de bord de la vue rendue afin de pouvoir présenter une autre vue adjacente à celle-ci (sans aucun espace entre les pixels). Plus précisément, je veux qu'une série de vues («pages») se replie comme un dépliant, en animant l'angle.iOS CATransform3D Coordonnées
int dir = (isOddNumberedPage ? 1 : -1);
float angle = 10.0;
theView.frame = CGRectMake(pageNumber * 320, 0, 320, 460);
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = -1.0/2000; // Perspective
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform,
dir * angle/(180.0/M_PI), 0.0f, 1.0f, 0.0f);
theView.layer.transform = rotationAndPerspectiveTransform;
// Now need to get the top, left, width, height of the transformed view to correct the view's left offset
J'ai essayé plusieurs façons de le faire en inspectant le CALayer, une tentative ratée à l'aide de quelques extraits de code mathématique de la matrice que j'ai trouvé, mais n'ont pas été en mesure de se fissurer ou même se rapprocher (selon angle, un bon 20 pixels). Y at-il un moyen de le faire sans passer 2 semaines à lire un manuel de mathématiques matricielles?
Merci Rob - vous êtes une star absolue. J'en ai pris quelques-uns pour que ça marche dans mon scénario, mais votre explication était sur place, alors j'ai été là. – Phil