当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 编程基础
tcxu

多边形组成的旋转图案(动画)

tcxu 发布于 2016年08月20日 15时, 2评/1421阅
分享到: 
收藏 +0
0
原创。效果见 (用 javascript 写的)
http://runjs.cn/detail/9qhedgen
标签: <无>

代码片段(3) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [2] [全屏预览]

import java.awt.*;
import javax.swing.*;
import java.lang.*;

public class Polygon7 extends JApplet implements Runnable {
private Thread timer = null; 
private int x[]={4,    4,  46, 46, 139,139};
private int y[]={-1,-158,-140,-28,  26, 76};
private int degree = 0;
private Image buffer;

private Polygon poly = new Polygon(x,y,x.length);
	
public void paint(Graphics gg){
	buffer = createImage(1000,600);   //创建缓冲影像 double buffering     
    Graphics2D g =( Graphics2D )buffer.getGraphics();//提取缓冲画笔 g
	super.paint(g); //清屏 
	g.translate(200,200);//坐标轴平移 
	g.rotate(Math.PI/180*degree++);//坐标轴顺时针旋转
	g.setColor(Color.green);
	for (int j=0;j<3;j++){
	g.fillPolygon(poly);
	g.rotate(Math.PI/180*120);//坐标轴顺时针旋转
	   }
	gg.drawImage(buffer,0,0,this);//将缓冲影像显示于屏幕
	}
	
 public void start() {
   	if(timer == null) {
          timer = new Thread(this);
          timer.start();      
        }
   }
   public void stop() {
        timer = null;
   }

   public void run( ) {

        while (timer != null) {
        try {Thread.sleep(200);} catch (InterruptedException e) {}
        repaint();
        }
        timer = null;
   }

   public void update(Graphics g) { //必须的,旨在防止闪烁
   paint(g);
   }
}

2. [文件] Polygon7.html ~ 80B     下载(13)     跳至 [1] [2] [全屏预览]

<html>
<applet code="Polygon7.class" width="500" height="480">
</applet>
</html>

3. [图片] polygon_7.png    



开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(2)

  • 1楼:tcxu 发表于 2016-08-25 11:49 回复此评论
    这里,在使用缓存影像(双缓存)画图时,无需 17 行代码:super.paint(g);//清屏
  • 2楼:george970 发表于 2016-11-23 17:07 回复此评论
    学到了,很厉害
开源从代码分享开始 分享代码
tcxu的其它代码 全部(43)...