博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 动态太极图 DynamicTaiChi (整理)
阅读量:7229 次
发布时间:2019-06-29

本文共 2963 字,大约阅读时间需要 9 分钟。

1 package demo; 2  3 import java.awt.Color; 4 import java.awt.Graphics; 5  6 import javax.swing.JFrame; 7 import javax.swing.JPanel; 8  9 /**10  *                   Java 动态太极图 DynamicTaiChi (整理)11  *12  *                                          2016-1-2 深圳 南山平山村 曾剑锋13  */14 15 public class DynamicTaiChi extends JPanel{16     private static final long serialVersionUID = 1L;17     /*18      *           所有的数据都是按比例依照centerX进行改变的,所以19      * 如果想要更改面板大小的话,可以直接改centerX的值.20      */21     static int centerX = 600/2;22     static int centerY = centerX;23     static int cicle = centerX;24     static int angle = 0;25     26     public DynamicTaiChi() {27         start();28     }29     private void start() {30         new Thread(new Runnable() {31             32             @Override33             public void run() {34                 while (true) {35                     try {36                         angle++;37                         Thread.sleep(10);38                         repaint();39                     } catch (Exception e) {40                         e.printStackTrace();41                     }42                 }43                 44             }45         }).start();46     }47     @Override48     public void paint(Graphics graphics) {49         super.paint(graphics);50         this.setBackground(Color.red);51         graphics.setColor(Color.white);52         graphics.fillArc(centerX-cicle/2, centerY-cicle/2, cicle, cicle, angle, 180);53         graphics.setColor(Color.black);54         graphics.fillArc(centerX-cicle/2, centerY-cicle/2, cicle, cicle, 180+angle, 180);55         graphics.fillArc(centerX+(int)(cicle/2/2*(Math.cos(angle*Math.PI/180)))-cicle/2/2, centerY-(int)(cicle/2/2*(Math.sin(angle*Math.PI/180)))-cicle/2/2, cicle/2, cicle/2, 0, 360);56         graphics.setColor(Color.white);57         graphics.fillArc(centerX+(int)(cicle/2/2*(Math.cos((angle+180)*Math.PI/180)))-cicle/2/2, centerY-(int)(cicle/2/2*(Math.sin((angle+180)*Math.PI/180)))-cicle/2/2, cicle/2, cicle/2, 0, 360);58         graphics.setColor(Color.black);59         graphics.fillArc(centerX+(int)(cicle/2/2*(Math.cos((angle+180)*Math.PI/180)))-cicle/2/2/2, centerY-(int)(cicle/2/2*(Math.sin((angle+180)*Math.PI/180)))-cicle/2/2/2, cicle/2/2, cicle/2/2, 0, 360);60         graphics.setColor(Color.white);61         graphics.fillArc(centerX+(int)(cicle/2/2*(Math.cos(angle*Math.PI/180)))-cicle/2/2/2, centerY-(int)(cicle/2/2*(Math.sin(angle*Math.PI/180)))-cicle/2/2/2, cicle/2/2, cicle/2/2, 0, 360);62     }63     64     public static void main(String[] args) {65         JFrame jFrame = new JFrame();66         jFrame.setTitle("DynamicTaiChi");67         jFrame.setSize(centerX*2, centerY*2);68         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);69         jFrame.setLocationRelativeTo(null);70         71         DynamicTaiChi jPanel = new DynamicTaiChi();72         jFrame.add(jPanel);73         74         jFrame.setVisible(true);75     }76 }

转载地址:http://pbdfm.baihongyu.com/

你可能感兴趣的文章
归并排序
查看>>
java 的转义字符
查看>>
SharedPreferences的使用注意事项
查看>>
sofa-pbrpc高级用法
查看>>
Oracle 函数返回表实例2种写法实例
查看>>
mysql数据库主从复制
查看>>
Shell标准输出、标准错误 >/dev/null 2>&1
查看>>
Android自定义对话框(Dialog)位置,大小
查看>>
设置python的默认编码为utf8
查看>>
简易sqlhelper-java
查看>>
通过案例对SparkStreaming 透彻理解三板斧之一:解密SparkStreaming运行机制
查看>>
HBuilder 学习笔记
查看>>
利用OpenStreetMap(OSM)数据搭建一个地图服务
查看>>
TopN算法与排行榜
查看>>
lucene排序算法之向量空间模型(一)
查看>>
新浪微博数据Json格式解析
查看>>
WLAN 802.11 wifl区别
查看>>
oracle授权动态视图权限给用户
查看>>
Debian – 出现-bash: pip: command not found错误解决办法
查看>>
Zxing扫描二维码
查看>>