我想从我的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)(最小完整测试和可读示例)。 –