2016-08-22 55 views
0

当给定原点,距离和角度时,我无法绘制新的CGPoint。任务非常简单:我有一条连接有三个编辑手柄的线 - 每个手柄一个,中心一个。拖动结束手柄时,线条将相对于被拖动的手柄移动。该功能正常工作。当中心手柄被拖动时,两个端点手柄应该保持彼此的关系,如下图所示。所以当拖动中心手柄时,另外两个手柄应该随之移动。绘制一个给定原点,角度和距离的CGPoint

enter image description here

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

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位置似乎陷入随机位置。任何人都可以在我的数学中发现任何错误?谢谢!

+2

我认为trig函数需要弧度,而不是度数。 – paulvs

+2

根据开始和停止触摸动作的x和y差异,您知道中心的x和y差异。为什么不把这些作为你的唯一价值呢?把这三个点全部移到这个x上,这么多... – Putz1103

+0

@paulvs是的。我想你应该把它当作答案。 – jlasierra

回答

0

大部分三角函数都需要弧度,而不是度数。

此外,作为@ Putz1103指出的那样,你也许可以使用移动,而不是计算基于中心点的移动端的新位置的UITouch三角洲x和三角洲y

相关问题