Tengo una serie de UIImages con los que necesito simular la profundidad. No puedo usar la escala porque necesito poder rotar la vista principal, y las imágenes deben verse como si estuvieran apiladas visiblemente una frente a la otra, no en el mismo plano.¿Cómo apilo imágenes para simular profundidad usando Core Animation?
hice un nuevo proyecto basado en ViewController y poner esto en el viewDidLoad (así como adjunta tres 120x120 imágenes de píxeles llamado 1.png, 2.png, y 3.png):
- (void)viewDidLoad {
// display image 3
UIImageView *three = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"3.png"]];
three.center = CGPointMake(160 + 60, 240 - 60);
[self.view addSubview:three];
// rotate image 3 around the z axis
// THIS IS INCORRECT
CATransform3D theTransform = three.layer.transform;
theTransform.m34 = 1.0/-1000;
three.layer.transform = theTransform;
// display image 2
UIImageView *two = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"2.png"]];
two.center = CGPointMake(160, 240);
[self.view addSubview:two];
// display image 1
UIImageView *one = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];
one.center = CGPointMake(160 - 60, 240 + 60);
[self.view addSubview:one];
// rotate image 3 around the z axis
// THIS IS INCORRECT
theTransform = one.layer.transform;
theTransform.m34 = 1.0/1000;
one.layer.transform = theTransform;
// release the images
[one release];
[two release];
[three release];
// rotate the parent view around the y axis
theTransform = self.view.layer.transform;
theTransform.m14 = 1.0/-500;
self.view.layer.transform = theTransform;
[super viewDidLoad];
}
I Tengo razones muy específicas por las que no estoy usando un EAGLView y por qué no estoy cargando las imágenes como CALayers (es decir, por qué estoy usando UIImageViews para cada una). Esta es solo una demostración rápida que puedo usar para calcular exactamente lo que necesito en mi aplicación principal.
¿Hay alguna forma de matriz para traducir estas 2d imágenes a lo largo del eje z para que se vean como lo que intento representar? He revisado los otros artículos de StackOverflow y las referencias de Wikipedia, y no he encontrado lo que estoy buscando, aunque es posible que no use necesariamente los términos correctos para lo que trato de hacer.
Hola, estoy intentando tu código, pero no veo que la vista vaya en el eje Z según el valor que le damos. Mi requisito es tener un UIView alejamiento de la vista de la cámara en la dirección del eje Z. ¿Puedes compartir tu archivo completo? – Getsy