2016-08-22 81 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

相關問題