• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Group CGAffineTransform Animations?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Group CGAffineTransform Animations?


  • Subject: Re: Group CGAffineTransform Animations?
  • From: WT <email@hidden>
  • Date: Thu, 18 Jun 2009 07:45:04 +0200

Hi David,

On Jun 18, 2009, at 12:42 AM, David Duncan wrote:

Your solution works because you've scaled the coordinate system, so the translation needs to be scaled too (to get the change specified by the translation).

Yes, that was the point I was trying to make on earlier posts, though in a confusing way. My intuition was correct but I was too tired to understand why. It's actually rather simple. A scaling is like changing the size of your ruler or meter-stick (a smaller ruler produces larger lengths, so the object you're measuring appears bigger, and vice-versa). The problem is, though, that changing your ruler also changes how far you travel when you apply a translation (changing your ruler *is* changing the scale of your entire coordinate system). Thus, if you scale up, you also travel more, and if you scale down, you travel less, and always by the same factor. So, in order to travel the correct distance *and* make your object have a different size, you need to divide the translation offset by the scale of your scaling. The translation offset, of course, has to be the correct one, and that was a vector from the object's center to the center of the screen.


I am a bit confused now by something you said, though.

The issue with a translation is that it starts to confuse your expectations of the relationship between a view's center and the view's frame, because the center isn't altered by the transform, only the frame is. This is also why I recommend not using translations as part of your transform if they are not necessary, because then you look at the center of the view and you discover that it hasn't actually moved, yet your view is clearly not where it was before you set the transform.

Of note at this point is that the view's center is in its super view's coordinate system, while the view's bounds is in its own coordinate system (and thus the origin is usually, but need not be, CGPointZero).

If the center is in the superview's coordinate system, how can it not be changed by a translation? In the view's own coordinate system, yes, I can see that that's true, because then the center is half-way the bounds' width and height, and those don't change under a translation.


Wagner
_______________________________________________

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


  • Follow-Ups:
    • Re: Group CGAffineTransform Animations?
      • From: David Duncan <email@hidden>
    • Re: Group CGAffineTransform Animations?
      • From: Chunk 1978 <email@hidden>
References: 
 >Re: Group CGAffineTransform Animations? (From: Erik Buck <email@hidden>)
 >Re: Group CGAffineTransform Animations? (From: WT <email@hidden>)
 >Re: Group CGAffineTransform Animations? (From: David Duncan <email@hidden>)

  • Prev by Date: Re: Add same object/key to NSMapTable
  • Next by Date: Problem with capturing active state of the application
  • Previous by thread: Re: Group CGAffineTransform Animations?
  • Next by thread: Re: Group CGAffineTransform Animations?
  • Index(es):
    • Date
    • Thread