java图形旋转动画_Java旋转动画

新的AffineTransform始终为零旋转。您正在添加90度旋转,因此动画的每个帧看起来都是相同的:图像从其正常方向旋转90度。

您需要计算当前的旋转角度。

// Instance variable intialized at zero.

double angle = 0.0;

// In your ActionListener timer handler increment the angle.

{

angle += Math.toRadians(5); // 5 degrees per 100 ms = 50 degrees/second

while (angle > 2 * Math.pi())

angle -= 2 * Math.pi(); // keep angle in reasonable range.

}

public void paint(Graphics g) {

// Just use the transform that's already in the graphics.

Graphics2d g2 = (Graphics2d) g;

g2.setToIdentity();

// The code for your other transforms is garbled in my browser. Fill in here.

g2.rotate(angle);

g2.drawImage(arm, t, null);

}希望这能让你更接近。

我要补充一点,100毫秒的帧速率相当慢。动画会显得生涩。平滑动作最多需要30毫秒或每秒30帧。使用GPU的游戏有时会超过100 fps。

在动画循环中尽可能避免使用new。它将需要垃圾收集器更频繁地运行。这可能会导致动画中出现断断续续的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值