Mam warstwę o wysokości 50, a ja obracam ją wokół osi X. . . Jak mogę obliczyć wysokość podczas obrotu?CATransform3D: Oblicz wysokość po transformacji perspektywy
CATransform3D subLayerTransform = CATransform3DMakeTranslation(0, 0, 0);
subLayerTransform.m34 = -1/1800; //How does height relate to perspective and angle?
subLayerTransform = CATransform3DTranslate(subLayerTransform, 0, 0, 0);
subLayerTransform = CATransform3DRotate(subLayerTransform, 45 * (M_PI/180), 1, 0, 0);
_transitionLayer.sublayerTransform = subLayerTransform;
Jest to sin (alpha) * length + cos (alpha) * height. –
Czy możesz rozwinąć? Co to jest alfa, wysokość i długość? Czy możesz uczynić wysokość przedmiotem równania? Jeśli wysokość wynosi 50, bez obrotu, jaka jest wysokość po obrocie o 45 stopni? –
Jest to: new_height = sin (50) * _ transitionLayer.bounds.size.width + cos (50) * _ transitionLayer.bounds.size.height. –