dimanche 29 janvier 2012

CGAffineTransform 1.1 - Un peu plus

J'ai mentionné "cisaillement" dans le dernier article, mais je ne vous montrera comment utiliser les transformations pour cisailler une vue. Lorsque vous "cisaillement" un rectangle, vous transformer en un parallélogramme. Apple ne fournit pas une fonction pour faire cela, mais vous pouvez faire beaucoup avec des matrices de transformation au-delà de ce qu'ils vous ai donné les fonctions de faire. Voici un exemple d'un. Le "cisaillement" matrices ressembler à ceci:

X Shear

| 1 0 0 |
|SHx 1 0 |
| 0 0 1 |


Y Shear

| 1 ShY 0 |
| 0 1 0 |
| 0 0 1 |


Alors ... nous pouvons rendre notre CGAffineTransformShear propres () fonctions. Ici nous allons, attachez vos ceintures:

CGAffineTransformMakeShear.h

#import #import

CGAffineTransform CGAffineTransformMakeXShear(CGFloat proportion);
CGAffineTransform CGAffineTransformXShear(CGAffineTransform src, CGFloat proportion);
CGAffineTransform CGAffineTransformMakeYShear(CGFloat proportion);
CGAffineTransform CGAffineTransformYShear(CGAffineTransform src, CGFloat proportion);


CGAffineTransformMakeShear.m

#import "CGAffineTransformShear.h"
CGAffineTransform CGAffineTransformMakeXShear(CGFloat proportion)
{
return CGAffineTransformMake(1.0, 0.0, proportion, 1.0, 0.0, 0.0);
}
CGAffineTransform CGAffineTransformXShear(CGAffineTransform src, CGFloat proportion)
{
return CGAffineTransformConcat(src, CGAffineTransformMakeXShear(proportion));
}
CGAffineTransform CGAffineTransformMakeYShear(CGFloat proportion)
{
return CGAffineTransformMake(1.0, proportion, 0.0, 1.0, 0.0, 0.0);

}
CGAffineTransform CGAffineTransformYShear(CGAffineTransform src, CGFloat proportion)
{
return CGAffineTransformConcat(src, CGAffineTransformMakeYShear(proportion));
}


Maintenant, nous pouvons cisaillement vue, même un seul, nous créons dans Interface Builder:

Le rouge et le vert dans les parallélogrammes la capture d'écran vers la gauche sont juste UIViews avec un cisaillement de transformer appliquée, en utilisant les fonctions ci-dessus.

Amusez-vous!

Oh, et si vous le voulez - voici la révisée du projet Xcode du dernier article en utilisant de cisaillement.

Aucun commentaire: