Ok I got something similar to what I want.. @ glenn I see the "180 rotation when first move" still happens any idea?
her eis the code now CGPoint Location = [[touches anyObject] locationInView:self]; CGPoint p = [self convertPoint:self.center fromView:self.superview]; int x = p.x; int y = p.y; float dx = Location.x - x; float dy = Location.y - y; //CGPoint p1 = [aTouch locationInView:self]; //CGPoint distance = CGPointDelta(firstTouchPoint,[aTouch locationInView:self]); //atan2(p1.y - firstTouchPoint.y, p1.x - firstTouchPoint.x) double a = atan2(-dx,dy); //CGFloat a = atan2(p1.y - firstTouchPoint.y, p1.x - firstTouchPoint.x); rotating = YES; //Now im gonna chekc if I should enlarge CGFloat newDistFromCenter = [self getCurrentDistanceFromCenter:aTouch]; CGFloat deltaCenter = newDistFromCenter - dist; // Get distance between points CGFloat currentDistance = distanceBetweenPoints(firstTouchPoint,Location); CGFloat previousDistance = distanceBetweenPoints(firstTouchPoint,[aTouch previousLocationInView:self]); // Figure new scale CGFloat distanceRatio = currentDistance/previousDistance; if(0.5 <= distanceRatio && distanceRatio <= 1.3){ NSLog(@"current %f, Previous %f, Ratio %f", currentDistance, previousDistance, distanceRatio); bc_selectedItem.transform = CGAffineTransformScale(bc_selectedItem.transform,distanceRatio, distanceRatio); CGRect b = self.bounds; b.size.width += deltaCenter; b.size.height += deltaCenter; self.bounds = b; dist = newDistFromCenter; } self.transform= CGAffineTransformRotate(self.transform, a); bc_selectedItem.transform = CGAffineTransformRotate(bc_selectedItem.transform, a); actualAngle = a; firstTouchPoint = p; [self setNeedsDisplay]; Thanks in Advance Gustavo On Thu, Dec 2, 2010 at 5:08 PM, Gustavo Adolfo Pizano <gustavxcodepic...@gmail.com> wrote: > glenn thanks... thats solves one preoblem I had no idea why was that.. > > Now im trying for the second problem the following: > > CGFloat currentDistance = distanceBetweenPoints(firstTouchPoint,p); > CGFloat previousDistance = distanceBetweenPoints(p,[aTouch > previousLocationInView:self]); > > // Figure new scale > > CGFloat distanceRatio = currentDistance / previousDistance; > NSLog(@"current %f, Previous %f, Ratio %f", currentDistance, > previousDistance, distanceRatio); > > > where firstTouchPoint is where touchesBegan point started, and p is > the current point in the touchesmoved, > > Its working but scaling down when it should scale up and vice versa. > > G. > > On Thu, Dec 2, 2010 at 4:41 PM, glenn andreas <gandr...@mac.com> wrote: >> >> On Dec 2, 2010, at 9:37 AM, Gustavo Adolfo Pizano wrote: >>> now in my touches moved I do the following, the first part applies a >>> rotation, which is working properly, except that after the first move >>> the angle is 180 from what the view has, so you see that the view >>> turns 180 degrees!!, >> >>> CGFloat a = atan2(-dx,dy); >> >> >> >> atan2's parameters are declared as: >> >> double atan2(double y, double x); >> >> >> >> >> Glenn Andreas gandr...@gandreas.com >> The most merciful thing in the world ... is the inability of the human mind >> to correlate all its contents - HPL >> >> > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com