我想從我的jpanel中的awt.Graphics包中繪製函數drawline的一條線。我也試圖通過從原點開始完整旋轉360度來旋轉線條。我已經掌握了大部分內容,期望邏輯能夠旋轉那條線。動畫旋轉線
這裏是動畫的主要代碼,我有一個調用這個函數每60次每秒線程:
public void Update(){
degrees = (++degrees%360 == 0) ? 0 : degrees;
angle = Math.toRadians(degrees);
deltax = (Math.cos(angle) * deltax - Math.sin(angle) * deltay) + 100;
deltay = (Math.sin(angle) * deltax + Math.cos(angle) * deltay) + 100;
}
我加入了一個額外的100,因爲變化似乎是非常微小的。
更新值後,我會調用我的框架重新繪製自身,並使用這些更新值。
public void paintComponent(Graphics graph)
{
super.paintComponent(graph);
//... other code here
graph.drawLine(getWidth()/2, getHeight()/2, (int)deltax, (int) deltay);
}
它開始很好,但它很快就開始顯示出一些意想不到的結果。
什麼是意想不到的結果? – BitNinja
這是很難解釋,但它旋轉了一下,然後停止後,它開始向內收縮,然後不知何故,它看起來像它畫在彼此相鄰的線路,最終在0,0原點重新開始。 –
爲了儘快提供更好的幫助,請發佈[MCTaRE](http://stackoverflow.com/help/mcve)(最小完整測試和可讀示例)。 –