NSPoint像素偏向角度?

时间:2011-09-07 21:08:17

标签: objective-c cocoa

让我先从代码开始。

- (NSPoint*) pointFromPoint:(NSPoint*)point withDistance:(float)distance towardAngle:(float)angle; {
    float newX = distance * cos(angle);
    float newY = distance * sin(angle);

    NSPoint * anNSPoint;
    anNSPoint.x = newX;
    anNSPoint.y = newY;

    return thePoint;
}

根据我的知识,这个 应该是完美的。如果我调用此代码,则应该返回x 0的值和y 2的值。

somePoint = [NSPoint pointFromPoint:somePoint withDistance:2 towardAngle:90];

相反,我得到x的值1.05y的{​​{1}}。如何根据角度和距离找到1.70x坐标?

补充说明:我查看了math.stackexchange.com,但那里的公式让我想到了这一点。我需要代码,而不是正常的数学,因为我知道我可能会搞砸了。

2 个答案:

答案 0 :(得分:5)

函数的工作版本接受以度为单位而不是弧度的值,如下所示:

- (NSPoint)pointFromPoint:(NSPoint)origin withDistance:(float)distance towardAngle:(float)angle
{
    double radAngle = angle * M_PI / 180.0;
    return NSMakePoint(origin.x + distance * cos(radAngle), point.y + distance * sin(radAngle));
}

答案 1 :(得分:4)

你的问题是你以度为单位给出角度(例如90),但是数学是以弧度为单位的。尝试将90替换为M_PI_2