如何获得物体度数?

Posted

技术标签:

【中文标题】如何获得物体度数?【英文标题】:how to get objects degrees? 【发布时间】:2011-08-26 03:51:37 【问题描述】:
float mcount=0;
mcount += 0.3;
CGAffineTransform transform = CGAffineTransformMakeRotation(mcount);
Clock.transform = transform;

我想要获得学位! 如何获得这个对象的旋转(度)?例如 90 度。

我有动作脚本 3 示例:

myInt = clock_mc.rotation;

我在 Cocoa Touch 上需要这个方法

【问题讨论】:

这个问题不清楚。可以改写吗?你想得到一些信息吗?你想得到什么?您的问题标题提到获得“对象学位”-这是什么意思?但是在您询问“RADIAN”的问题中。提前感谢您的澄清。 【参考方案1】:

如果我正确理解了您的问题,那么这里的一些数学知识会有所帮助:

angleInRadians = angleInDegrees * M_PI / 180.0

为了得到相反的结果,你把你的等式颠倒过来。所以首先将右边除以 180 的结果向左移动,结果乘以 180.0

angleInRadians * 180.0 = angleInDegrees * M_PI

现在将乘以 M_PI(PI 的值类似于 3.1415962...)向左移动,您可以反转操作:

(angleInRadians * 180.0) / M_PI = angleInDegrees

现在为了方便程序使用,我们这样写:

angleInDegrees = (angleInRadians * 180.0) / M_PI

所以在你的程序中,你可以这样写代码:

var angleInDegrees = 0;

...    

angleInDegrees = mcount * 180.0 / M_PI;

如果你想使用一个函数,那么:

-(float) getAngleInDegrees:(float) radians

    float angleInDegrees = 0;

    angleInDegrees = radians * 180.0 / M_PI;

    return angleInDegrees;

【讨论】:

如果你想要更好的性能,你可以使用宏而不是方法。 #define rad2deg(rad) (rad * 180.0f / M_PI)【参考方案2】:

我想你想要如何将度数转换为弧度:-

为此,您可以使用以下公式:-

static inline double radians (double degrees)  return degrees * M_PI/180; 

【讨论】:

这个方法给你的是弧度值而不是度数 我知道,但我想要在你的函数中输入的我的对象的度数! 我有动作脚本 3 示例:myInt = clock_mc.rotation;我在 Cocoa Touch 上需要这个方法【参考方案3】:

已更新!

你想得到Clock对象的结果旋转角度吗?!如果是这样,请使用:

double rotationInRadians = atan2(Clock.transform.b, Clock.transform.a);
int rotationInDegrees = (int)round(rotationInRadians * 180 / M_PI);

阅读this了解详情和解释。

【讨论】:

我有动作脚本 3 示例:myInt = clock_mc.rotation;我在 Cocoa Touch 上需要这个方法

以上是关于如何获得物体度数?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得物体的主要方向?

OpenCV中如何获得物体的主要方向

iPhone - 我如何获得基于学位的位置的方向

3dsmax如何让动画中物体角度的旋转大于360度?也就是能转很多圈?

在Unity中获得一个物体的所有子物体包括孙物体。

unity如何获得二维坐标