绘制给定原点、角度和距离的 CGPoint

Plot a CGPoint given origin, angle and distance

在给定原点、距离和角度时,我无法绘制新的 CGPoint。任务非常简单:我有一条线,上面附有三个编辑手柄 - 两端一个,中间一个。拖动末端手柄时,线会相对于被拖动的手柄移动。该功能运行正常。拖动中心手柄时,两个端点手柄应保持彼此的关系,如下图所示。所以当拖动中心手柄时,其他两个手柄应该随之移动。

这是我当前绘制点的代码:

func pointFromPoint(origin:CGPoint, distance:Double, degrees:Double) -> CGPoint {
    var endPoint = CGPoint()
    endPoint.x = CGFloat(distance * cos(degrees) + Double(origin.x))
    endPoint.y = CGFloat(distance * sin(degrees) + Double(origin.y))
    return endPoint
}

使用此功能时,新的 CGPoint 位置似乎落在随机位置。谁能发现我的数学有什么问题?谢谢!

大多数三角函数需要弧度,而不是度数。

此外,正如@Putz1103 指出的那样,您可以使用移动 UITouch 的增量 x 和增量 y 而不是计算端点的新位置基于中心点的移动。