1
我正在製作一個骨架動畫編輯器。現在,每個骨骼都有一個起點和終點,當鼠標位於一個點之下時,隨後的拖動將導致骨骼根據鼠標的位置旋轉。爲此,我調用atan2並將鼠標座標轉換爲當地鼠標被按下的地方空間。雖然這個「有效」,但它確實是錯誤的。由骨形成的矢量不一定與鼠標點平行,它應該是。當用鼠標拖動時使用atan2來旋轉圖像
我覺得有什麼關於atan2我不明白。
:
if(boneUnderMouse)
{
boneUnderMouse->setAngle(startAngle +
(atan2((float)event.mouse.x - startX,event.mouse.y - startY)));
}
感謝
還有更多的東西,當起始角度大於或等於π時,它會沿相反的方向旋轉。 – jmasterx 2011-05-23 18:31:56
@Milo:這給出了終點和起點之間的角度。因此,如果您將此添加到'startAngle',您會看到這樣的效果。嘗試直接設置角度(即沒有'startAngle +'部分)。 – Howard 2011-05-23 18:34:59
問題是我設置的角度是相對於其父項。這就是爲什麼我只想添加角度變化 – jmasterx 2011-05-23 18:38:18