Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 356|回复: 0

[Swing学习]用JAVA画个星条旗

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-6 23:56:15 | 显示全部楼层 |阅读模式
    java画个星条旗
       

       

       
       

       
      
    1. public class DrawFlag
    2. {
    3.     public static void main(java.lang.String[] args) throws java.io.IOException
    4.     {
    5.         DrawFlag.drawFlag();
    6.     }
    7.     public static void drawFlag() throws java.io.IOException
    8.     {
    9.         java.awt.image.BufferedImage bufferedImage =
    10.            new java.awt.image.BufferedImage(420, 221, java.awt.image.BufferedImage.TYPE_INT_RGB);
    11.         java.awt.Graphics gp = bufferedImage.getGraphics();
    12.         java.awt.Color color = new java.awt.Color(0);
    13.         for (int i = 0; i < 13; i++)
    14.         {
    15.             if (i % 2 == 0)
    16.             {
    17.                 color = new java.awt.Color(204, 0, 0);
    18.             }
    19.             else
    20.             {
    21.                 color = new java.awt.Color(255, 255, 255);
    22.             }
    23.             gp.setColor(color);
    24.             gp.fillRect(0, 17 * i, 420, 17);
    25.         }
    26.         color = new java.awt.Color(0, 0, 102);
    27.         gp.setColor(color);
    28.         gp.fillRect(0, 0, 168, 119);
    29.         color = new java.awt.Color(255, 255, 255);
    30.         gp.setColor(color);
    31.         int left = 0;
    32.         int top = 0;
    33.         for (int i = 0; i < 9; i++)
    34.         {
    35.             top = (i + 1) * 12;
    36.             if (i % 2 == 0)
    37.             {
    38.                 left = -15;
    39.                 for (int j = 0; j < 6; j++)
    40.                 {
    41.                     left = left + 28;
    42.                     DrawFlag.DrawPentacle(gp, (double) left, (double) top, (double) 8, 0);
    43.                 }
    44.             }
    45.             else
    46.             {
    47.                 left = -2;
    48.                 for (int j = 0; j < 5; j++)
    49.                 {
    50.                     left = left + 28;
    51.                     DrawFlag.DrawPentacle(gp, (double) left, (double) top, (double) 8, 0);
    52.                 }
    53.             }
    54.         }
    55.         color = new java.awt.Color(0, 0, 0);
    56.         gp.setColor(color);
    57.         java.awt.Font font = new java.awt.Font("宋体", java.awt.Font.CENTER_BASELINE, 12);
    58.         gp.setFont(font);
    59.         gp.drawString("这些星好像有点怪", 300, 200);
    60.         javax.imageio.ImageIO.write(bufferedImage, "jpg", new java.io.File("flag.jpg"));
    61.     }
    62.     public static void DrawPentacle(java.awt.Graphics gp, double x, double y, double r, int a)
    63.     {
    64.         int A;
    65.         double R, X, Y;
    66.         double[] _X = new double[11];
    67.         double[] _Y = new double[11];
    68.         int[] _x = new int[3];
    69.         int[] _y = new int[3];
    70.         a = a + 90;
    71.         R =Math.sin(Math.toRadians((double) 18)) * r / Math.sin(Math.toRadians((double) 126));
    72.         for (int i = 0; i < 5; i++)
    73.         {
    74.             A = a + 72 * i;
    75.             X = R * java.lang.Math.cos(java.lang.Math.toRadians((double) A)) + x;
    76.             Y = R * java.lang.Math.sin(java.lang.Math.toRadians((double) A)) + y;
    77.             _X[i * 2] = X;
    78.             _Y[i * 2] = Y;
    79.             A = a + 72 * i + 36;
    80.             X = r * java.lang.Math.cos(java.lang.Math.toRadians((double) A)) + x;
    81.             Y = r * java.lang.Math.sin(java.lang.Math.toRadians((double) A)) + y;
    82.             _X[i * 2 + 1] = X;
    83.             _Y[i * 2 + 1] = Y;
    84.         }
    85.         _X[10] = x;
    86.         _Y[10] = y;
    87.         for (int i = 0; i < 5; i++)
    88.         {
    89.             _x[0] = DrawFlag.round(_X[i * 2], 0);
    90.             _x[1] = DrawFlag.round(_X[i * 2 + 1], 0);
    91.             _x[2] = DrawFlag.round(_X[10], 0);
    92.             _y[0] = DrawFlag.round(_Y[i * 2], 0);
    93.             _y[1] = DrawFlag.round(_Y[i * 2 + 1], 0);
    94.             _y[2] = DrawFlag.round(_Y [10], 0);
    95.             gp.fillPolygon(_x, _y, 3);
    96.             _x[0] = DrawFlag.round(_X[i * 2 + 1], 0);
    97.             _x[1] = DrawFlag.round(_X[(i == 4) ? (0) : (i * 2 + 2)], 0);
    98.             _x[2] = DrawFlag.round(_X[10], 0);
    99.             _y[0] = DrawFlag.round(_Y[i * 2 + 1], 0);
    100.             _y[1] = DrawFlag.round(_Y[(i == 4) ? (0) : (i * 2 + 2)], 0);
    101.             _y[2] = DrawFlag.round(_Y[10], 0);
    102.             gp.fillPolygon(_x, _y, 3);
    103.         }
    104.     }
    105.     public static int round(double d, int scale)
    106.     {
    107.         if (scale < 0)
    108.         {
    109.             scale = 0;
    110.         }
    111.         java.math.BigDecimal b = new java.math.BigDecimal(java.lang.Double.toString(d));
    112.         java.math.BigDecimal one = new java.math.BigDecimal("1");
    113.         return b.divide(one, scale, java.math.BigDecimal.ROUND_HALF_UP).intValue();
    114.     }
    115. }
    复制代码


      
      
       
       

         
       

         
       
      
      
      

      










    源码下载:http://file.javaxxz.com/2014/11/6/235614828.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 10:06 , Processed in 0.335240 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表