Non riesco a capire come usare CATransform3DMakeRotation()
. Qualcuno può dirmi come usarlo?Come si usa CATransform3DMakeRotation?
penso che il primo parametro è l'angolo, giusto? Ma quali sono gli altri tre?
Non riesco a capire come usare CATransform3DMakeRotation()
. Qualcuno può dirmi come usarlo?Come si usa CATransform3DMakeRotation?
penso che il primo parametro è l'angolo, giusto? Ma quali sono gli altri tre?
Il primo è l'angolo in radianti altri 3 parametri sono l'asse (x, y, z). Così, per esempio, se si desidera ruotare di 180 gradi intorno all'asse z basta chiamare la funzione in questo modo:
myView.layer.transform = CATransform3DMakeRotation(M_PI, 0.0, 0.0, 1.0);
e applicare il risultato alla proprietà transform della vista che si desidera ruotare.
Essi rappresentano l'asse intorno al quale si desidera ruotare. Usa 0,0,1 per ruotare nel piano dello schermo.
Probabilmente troverete questi utile quando si utilizza radianti:
CGFloat DegreesToRadians(CGFloat degrees)
{
return degrees * M_PI/180;
};
CGFloat RadiansToDegrees(CGFloat radians)
{
return radians * 180/M_PI;
};
Vedi anche il Core Animation funzione di riferimento per la definizione della funzione: http://developer.apple.com/library/mac/documentation /Cocoa/Reference/CoreAnimation_functions/Reference/reference.html#//apple_ref/c/func/CATransform3DMakeRotation –
modo sostanzialmente sufficiente impostare l'angolo e mettere 1,0 sulla x, y, o, z che voglio utilizzare? è sempre 1.0? –
@Dan - No, non è sempre 1.0 per gli assi. Le componenti X, Y e Z definiscono un asse attorno al quale avviene la rotazione. Impostando 1.0 per un componente e lasciando l'altro a 0.0, si definisce una rotazione attorno all'asse X, Y o Z, ma è possibile ruotare su qualsiasi direzione arbitraria. Ciò ti consente di manipolare viste e livelli in un modo veramente 3D. –