Besoin d'être mieux et plus simple la compréhension de CATransform3D
S'il vous plaît aller à travers les images.
C'est donc le code que j'ai obtenu à partir de certaines sources en ligne et il n'transformer mon objet. En plus de cela, je n'ai rien compris du tout. Je suis nouveau sur CATransform3D et que vous voulez savoir exactement comment il fonctionne.
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -500;
transform = CATransform3DRotate(transform, 45.0f * M_PI / 180.0f, 0, 1, 0.0f);
_bgView.layer.transform = transform;
Je veux savoir comment ce code à exécuter?
Pourquoi avons-nous mis un peu de valeur dans m34? J'ai trouvé que son une sorte de matrice qui me confond même plus. Aussi, quels sont les arguments dans le CATransform3DRotate veux dire???
J'essaie de comprendre mais de ne pas avoir davantage.
Je veux une compréhension profonde de CATransform3D. S'il vous plaît aider avec des articles, des documents, ou en expliquant vous-mêmes.
Merci beaucoup.
Comment faire pivoter à l'aide de point de contact ?
OriginalL'auteur mayuur | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que
m34
est sans regarder.Une rotation 2D est facile parce que tout ce qu'il faut est un angle par lesquels la rotation. La rotation se fait alors AUTOUR de l'axe Z (c'est à dire l'axe qui pointe directement sur l'écran).
Une rotation 3D est différent. Il a besoin d'un certain angle, mais aussi il a besoin de savoir qui ou les axes) vous êtes en rotation autour de.
Dans
CATransform3DRotate
vous donner cinq paramètres...Angle (en radians) π radians = 180 degrés
3, 4 et 5 sont de savoir comment une grande partie de l'angle de rotation à appliquer à chaque axe.
De l'axe X - c'est l'axe qui va de la gauche de l'écran, à droite de l'écran.
La rotation que vous avez appliqué dans votre exemple, comme suit...
= angle de 45 degrés (converti en radians).
X = 0
Y = 1
Z = 0
Cela signifie que tous les 45 degrés rotation autour de l'axe Y. c'est à dire, il tournera comme une porte tournante autour de la ligne vers le bas de son milieu.
Si vous avez eu la params... "1, 0, 0" à la fin, alors il ferait tourner comme un bateau à aubes de la pagaie. "S'éloignent de vous."
Enfin, si vous avez eu "0, 0, 1" il serait tourner comme catherine roue sur l'écran.
Vous pouvez également combiner les valeurs c'est à dire "0, 1, 1" pour appliquer une rotation autour de deux axes.
Le w de la ligne de la matrice de projection perspective. Avez-vous jamais faire dessin en perspective à l'école, où vous placez un point et tracer des lignes à partir de la dot et ensuite dessiner des choses à adapter ces lignes pour lui donner de la perspective? Bien le m34 valeur détermine l'endroit où ce point est placé et donc donne de la perspective. Ensemble à quelque chose comme -50 et vous verrez une grande différence.
Réglage m34 se rapporte à l'axe Z de la valeur de ce point. Donc, le point est placé au (0, 0, -1/500)
Merci pour le remplissage. Edité pour ajouter votre commentaire.
Bon, c'est à peu près efface tout! Mais je voulais savoir les valeurs de la matrice. Comment jouent-ils leur rôle?? Mais en tout cas, merci beaucoup pour nettoyer la partie restante! 🙂
Pas de soucis. Le lien de David réponse explique à propos de la matrice de la valeur que vous avez modifié. en.wikipedia.org/wiki/...
Allez, une petite question. Que faire si j'en aurais besoin pour animer cette transformation? Ai-je besoin pour augmenter/diminuer la valeur de m34 dans les étapes suivantes??
OriginalL'auteur Fogmeister
La
m34
valeur est la troisième ligne, en avant de la colonne et la valeur dans la matrice derrière la transformation que, de fait, donne le point de vue de la rotation.Vous pouvez en savoir plus sur les mathématiques derrière la matrice de multiplications sur Wikipédia.
Concernant les valeurs pour
CATransform3DRotate(...)
.Merci pour l'aide. En fait je suis passé par à la fois les liens avant de poster ici, mais il n'a pas beaucoup d'aide! Il n'a pas encore clair comment cette matrice d'une transformation.
OriginalL'auteur David Rönnqvist
Voici mon projet Swift https://github.com/paulz/PerspectiveTransform qui permet de calculer CATransform3D et inclut des exemples d'application et de jeux.
il peut être utilisé pour animer CALayer propriété transform.
Voir wiki: https://github.com/paulz/PerspectiveTransform/wiki pour plus de détails sur la construction de la matrice et les autres solutions possibles.
Je vous remercie pour cette question, il m'a aidé à obtenir commencé sur mon projet sachant pas que moi ont ce problème!
Le bouton modifier de la! Comment un génie, merci à vous, @Pang
OriginalL'auteur Paul Zabelin