zoukankan      html  css  js  c++  java
  • JAVA图形小动画之简单行星运动

    //第一个java文件thread_star.java:

    package solarsystem;

    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.geom.Ellipse2D;

    import javax.swing.JPanel;

    class thread_star extends Thread
    {
    int x0;
    int y0;
    int r0;
    int d0;
    double angle;
    thread_star(int x,int y,int r,double a)
    {
    x0=x;
    y0=y;
    r0=r;
    d0=x0-960;
    angle=a;
    }
    public void run()
    {double an=angle/3;
    while(true)
    {
    x0=(int) (960+d0*Math.cos(angle));
    y0=(int) (540+d0*Math.sin(angle));

    angle=angle+an/10;
    try {
    sleep(1);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
    class draw_star extends JPanel
    {
    thread_star s[]={new thread_star(1300,540,30,(Math.PI/20)),new thread_star(1700,540,40,(Math.PI/40))
    ,new thread_star(1400,540,25,(Math.PI/30)),new thread_star(1620,540,30,(Math.PI/36)),
    new thread_star(1180,540,18,(Math.PI/10))
    };
    draw_star()
    {
    for(int i=0;i<s.length;i++)s[i].start();
    this.setBackground(Color.black);
    }
    public void paint(Graphics g)
    {
    g.setColor(Color.black);
    g.fillRect(0, 0, getWidth(), getHeight());
    //this.setBackground(Color.BLACK);
    super.paint(g);


    }
    public void paintComponent(Graphics g0)
    {
    this.setBackground(Color.black);
    Graphics2D g=(Graphics2D)(g0);
    g.setColor(Color.yellow);
    g.fill(new Ellipse2D.Double(960-80,540-80,160,160));
    Color c[]={Color.blue,Color.GRAY,Color.orange,Color.RED,Color.red};
    for(int i=0;i<s.length;i++)
    {
    g=(Graphics2D)(g0);
    g.setColor(c[i]);
    g.fill(new Ellipse2D.Double(s[i].x0-s[i].r0,s[i].y0-s[i].r0,2*s[i].r0,2*s[i].r0));
    }
    repaint();
    }

    }

    //第二个java文件J_Frame.java:

    package solarsystem;

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;

    import javax.swing.JFrame;

    public class J_Frame extends JFrame
    {
    J_Frame()
    {
    super("太阳星系图");
    draw_star d=new draw_star();
    Container c=getContentPane();
    c.setBackground(Color.BLACK);
    c.add(d);
    this.setBackground(Color.black);
    }
    public static void main(String args[])
    {

    J_Frame j=new J_Frame();
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    j.setSize(1920, 1080);
    j.setVisible(true);
    }
    }

    运行结果图示:

  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/linruier/p/9485223.html
Copyright © 2011-2022 走看看