Re: Group CGAffineTransform Animations?
Re: Group CGAffineTransform Animations?
- Subject: Re: Group CGAffineTransform Animations?
- From: Erik Buck <email@hidden>
- Date: Wed, 17 Jun 2009 14:53:46 -0700 (PDT)
> My third grader was taught about associative and commutative math operations. Some matrix operations are associative and some are commutative. That's why the order of operations matters.
Just in case: I didn't mean to imply that even third graders should understand matrix math. It was just a stream of consciousness statement intended to express that my son actually caused me to remember the terms "associative" and "commutative". I was reminded by a third grader :)
You're absolutely correct in general, but - if I'm not mistaken - CGAffineTransform rotations and scalings already do their thing with respect to the center of the view they're being applied to. In fact, I tested that before writing my solution to the OP's problem. And that is indeed the source of the problem. Rotations and scalings, as implemented by CGAffineTransform, are with respect to the view's center but translations are with respect to the view's origin. Therefore, if you scale while you translate, the view's origin changes and the translation is no longer being applied with the correct offset.
To be honest, I'm a bit surprised that CGAffineTransform rotations and scalings are already defined with respect to the center of the view. There's still a part of my brain that thinks that that isn't true, but my tests indicated otherwise.
Wagner
OK. I will have to try this at home. If you create a CGAffineTransform as I did and then use [myUIView setTransform:myTransform], how can a UIView know that part of my transform matrix applies one way and another part applies another way ? I think it is mathematically impossible unless the view is pulling components out of the transform matrix rather than just concatenating the matrix I supply with whatever matrix it's superview uses. If it pulls components out of the transform matrix, it is not a proper affine transform (because shear and skew and some degenerate cases will not work) and all of the functions are misnamed.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden