3D图形的运动
- 其实了解java越多,就越发现,很多我们认为很神奇的特效,都可以通过我们的代码跑出来,就比如上一篇文章里的分形,我们用代码跑公式,然后画出神奇的分形图案,不过有句话说得好,只要是对称的图形,随便怎么画都好看。
还是老规矩,整个界面出来。
public class AA {
public void showUI() {
//创建窗体
JFrame drawFrame = new JFrame("画板");
drawFrame.setSize(1000,600);
drawFrame.setLocationRelativeTo(null);
drawFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
//设置窗体可见
drawFrame.setVisible(true);
}
public static void main(String[] args) {
AA ui = new AA();
ui.showUI();
}
}
然后写我们的方法
public class DrawListene implements MouseListener{
int startx,starty;
int x;
int y;
Graphics g;
public void mousePressed(MouseEvent e) {
//获取坐标
startx = e.getX();
starty = e.getY();
}
public void mouseReleased(MouseEvent e) {
int r=100;
//颜色不断加深
for(int i=0;i<255;i++) {
Color c = new Color(i,255-i,255-i);
g.setColor(new Color(i,i,i));
//画圆的位置不断变化
g.fillOval(startx+i/3, starty+i/3, 255-i, 255-i);
}
//放慢动作慢慢看
try {
Thread.sleep(50);
} catch (InterruptedException a) {
a.printStackTrace();
}
System.out.println(startx+","+starty);
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
在界面加上监听器
//创建监听器
DrawListene drawL = new DrawListene();
//获取窗体的画布
drawL.g= drawFrame.getGraphics();
//添加监听器
drawFrame.addMouseListener(drawL);
看效果
然后我们让它动起来
这里是最终效果,其实就是绕着圆画了三十次球,在我们眼里看着就像是动起来了一样
之后再调节颜色
调节颜色的方法只需要在setColor那里调就好了
懂了这个方法,我们就可以画出其他的东西,比如画矩形,画线,发挥你天马行空的想象力与创造力,创造出你喜欢的图案吧~
over~