iphone - 计算饼图中的旋转角度

标签 iphone ipad pie-chart

我想围绕其中心点旋转图像。我面临的问题是我需要获取在触摸移动事件中计算的角度(我不想使用多点触摸)。我当前使用以下代码

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

NSArray *allTouches = [touches allObjects]; 
gestureStartPoint = gestureMovedPoint;//i am getting the gestureStartPoint on touch began event

gestureMovedPoint = [[allTouches objectAtIndex:0] locationInView:[self superview]];

NSLog(@"gestureMovedPoint = %@",NSStringFromCGPoint(gestureMovedPoint));

}

CGFloat previousAngle = [self angleBetweenPoints:gestureStartPoint second11:gestureMovedPoint]; // atan2(gestureMovedPoint.y - gestureStartPoint.y, gestureMovedPoint.x - gestureStartPoint.x) * 180 / M_PI;
CGFloat currentAngle =atan2(self.transform.b, self.transform.a);//atan2(gestureMovedPoint.y - gestureStartPoint.y,gestureMovedPoint.x - gestureStartPoint.x) * 180 / M_PI;



CGFloat angleToRotate = currentAngle - previousAngle;



float xpoint = (((atan2((gestureMovedPoint.x - gestureStartPoint.x) , (gestureMovedPoint.y - gestureStartPoint.y)))*180)/M_PI);

    CGAffineTransform transform = CGAffineTransformMakeRotation(angleToRotate-100);



self.transform = transform;

请帮助我找到解决方案,因为我被困在这里,并且需要在截止日期后尽快完成此申请。 提前致谢

最佳答案

很高兴我记得三角函数


-(void)degreesToRotateObjectWithPosition:(CGPoint)objPos andTouchPoint:(CGPoint)touchPoint{

   float dX = touchPoint.x-objPos.x;        // distance along X
   float dY = touchPoint.y-objPos.y;        // distance along Y
   float radians = atan2(dY, dX);          // tan = opp / adj

   //Now we have to convert radians to degrees:
   float degrees = radians*M_PI/360;

   return degrees;
}

一旦你有了好的方法,只需在触摸事件方法中执行此操作即可。 (忘记叫什么了...)

CGAffineTransform current = view.transform;

[view setTransform:CGAffineTransformRotate(current,<br/>                 [self degreesTorotateObjectWithPosition:view.frame.origin <br/>                                  andTouchPoint:[touch locationInView:<b>parentView</b>]]

//<b>Note: parentView = The view that your object to rotate is sitting in.</b>

这几乎是您需要的所有代码。数学是正确的,但我不确定 setTransform 的内容。我在学校用浏览器写这个。从这里你应该能够弄清楚。

祝你好运

金天鹰

关于iphone - 计算饼图中的旋转角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102942/

相关文章:

javascript - 刷新 uiwebview (iphone) 内 html 文件的内容

ios - 协议(protocol)扩展,变异函数

ios - iPad 应用程序作为 Excel 模型的包装器

iphone - Objective C 中的套接字编程

ios - iPad iOS 6 如何防止顶角 UINavigationBar 与背景图像四舍五入

html - 仅使用 CSS 的百分比饼图

ios - 如何从 ios 中的应用程序文件夹中按日期对 uiimages 进行排序

iOS 应用程序在真实设备上崩溃。错误 : dyld`__abort_with_payload

c# - 如何在饼图中的图例中设置不同的标签

c# - AjaxControlToolkit 饼图未正确呈现