【发布时间】:2016-08-23 02:36:34
【问题描述】:
在给定原点、距离和角度时,我无法绘制新的 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 位置似乎落在随机位置。谁能发现我的数学有什么问题?谢谢!
【问题讨论】:
-
我认为三角函数需要弧度,而不是度数。
-
根据开始和停止触摸动作的 x 和 y 差异,您知道中心移动的 x 和 y 差异。为什么不把这些作为你唯一的价值观呢?将所有三个点移动这么多 x 和这么多 y...
-
@paulvs 是的。我认为您应该将其作为答案。