NSPoint像素偏向角度?

Jus*_*tin 2 cocoa objective-c

让我先从代码开始.

- (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;
}
Run Code Online (Sandbox Code Playgroud)

根据我的知识,这应该是完美的.如果我调用此代码,它应该返回和x0以及y2.

somePoint = [NSPoint pointFromPoint:somePoint withDistance:2 towardAngle:90];
Run Code Online (Sandbox Code Playgroud)

相反,我得到x1.05和a y的价值1.70.如何根据角度和距离找到xy坐标?

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

Noa*_*oon 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));
}
Run Code Online (Sandbox Code Playgroud)

  • 这是不好的.计算机程序中的角度几乎普遍用弧度表示.如果你有一个非常好的理由,你应该只接受学位,如果你这样做,你需要反映名称中的度数这一事实,例如`-pointFromPoint:withDistance:towardsAngleInDegrees:`.对于任何需要维护代码的人来说,其他任何事情都是一种伤害,包括你在6个月后. (2认同)