国庆闲的好无聊,不如就敲点代码庆祝祖国生日吧
代码附上:
package test;

import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;

import javax.swing.JFrame;

public class NationalFlag extends JFrame {
   private int width=288,height=width/3*2;
   private double maxR=0.15,minR=0.05;
   private double maxX=0.50,maxY=0.50;
   private double[] minX={0.75,0.85,0.85,0.75};
   private double[] minY={0.35,0.45,0.60,0.70};
  public NationalFlag(){
  setTitle("国旗 - by yuxiaoer");
  setDefaultCloseOperation(EXIT_ON_CLOSE);//用户单击窗口的关闭按钮时程序执行的操作
  }

public void paint(java.awt.Graphics graphics){
super.paint(graphics);
java.awt.Graphics2D g=(java.awt.Graphics2D)graphics;

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

//棋面
g.setColor(java.awt.Color.red);
g.fillRect(50, 50, width, height);
g.setColor(java.awt.Color.yellow);
//画大星星
double ox=height*maxX,oy=height*maxY;
g.fill(createPentacle(ox,oy,height*maxR,-Math.PI/2));

//画小星星
for(int idx=0;idx<4;idx++){
double sx=minX[idx]*height,sy=minY[idx]*height;
double theta=Math.atan2(oy-sy, ox-sy);
g.fill(createPentacle(sx,sy,height*minR,theta));
}

}
/*
* 创建一个五角星形状,该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius 其中某个顶点与中心连线的偏移角度
* 为theta(弧度)
*/
public static java.awt.Shape createPentacle(double sx,double sy,double radius,double theta){
final double arc=Math.PI/5;
final double rad=Math.sin(Math.PI/10)/Math.sin(3*Math.PI/10);
GeneralPath path=new GeneralPath();
path.moveTo(1, 0);
for(int idx=0;idx<5;idx++){
path.lineTo(rad*Math.cos((1+2*idx)*arc), rad*Math.sin((1+2*idx)*arc));

path.lineTo(Math.cos(2*(idx+1)*arc), Math.sin(2*(idx+1)*arc));

}
path.closePath();
AffineTransform atf=AffineTransform.getScaleInstance(radius, radius);
atf.translate(sx/radius, sy/radius);
atf.rotate(theta);
return 
atf.createTransformedShape(path);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
      NationalFlag flag=new  NationalFlag();
      flag.setBounds(100,100,400,400);
      flag.setVisible(true);
}
}

声明:
       本文非原创引用自http://www.oschina.net/code/snippet_272789_14922     侵删

国庆节我们用代码画个国旗相关推荐

  1. python画爱心原理_程序员式优雅表白,教你用python代码画爱心

    还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧!PyCharm pro Mac-PyCharm pro for Mac( Py ...

  2. python程序 爱意_程序员式优雅表白,教你用python代码画爱心

    还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧!PyCharm pro Mac-PyCharm pro for Mac( Py ...

  3. python代码画皮卡丘_程序员式优雅表白,教你用python代码画爱心

    还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧! PyCharm pro Mac-PyCharm pro for Mac( P ...

  4. markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)

    这篇文章主要介绍 流程图基础 以写代码的方式画流程图 相比于使用画图工具拖拽画图,用代码画图有什么好处? 首先,这种方式非常轻便,无需安装复杂的画图应用.Typora 等多种 Markdown 编辑器 ...

  5. python代码画小狗_程序员教你用代码手绘一只可爱的小狗,正好拿去送给女朋友给她个惊喜...

    最近经常在抖音上刷到会画画的大神给小姐姐手绘各种可爱的小动物,非常的哇塞哦~ 作为程序员的我那是羡慕不已啊!我要是学会这招是不是可以尝试给我心仪很久的女神告白了?女神没准会很开心!(好吧,我承认我是舔 ...

  6. 神级程序员8000行css代码画出一个蒙娜丽莎,堪比达芬奇!

    代码画出的蒙娜丽莎 今天逛CODEPEN找HTML5动画案例的时候,偶尔看到一位神级大师的作品,用纯CSS代码画出一副蒙娜丽莎,虽然分辨率不高,但是仍然让我很是震撼,一看代码,整整8000行,基本一行 ...

  7. 使用canvas 代码画小猪佩奇

    使用canvas 代码画小猪佩奇 最近不是小猪佩奇很火嘛!!! 前几天 在知乎 看见了别人大佬用python写的 小猪佩奇,  顿时想学 ,可是 自己 没学过python(自己就好爬爬图片,,,,几个 ...

  8. 计算机代码画玫瑰,如何用代码画一朵玫瑰花

    原标题:如何用代码画一朵玫瑰花 这几天不知道是哪个在百度的CATIA吧挖坟,翻了一篇画玫瑰花的陈年老贴出来,结果一大波童鞋开始各种求玫瑰花模型,求玫瑰花画法. 其实小编想说的是:暂且不管你画的逼不逼真 ...

  9. 用python画小猪佩奇的编码_如何用Python代码画小猪佩奇

    Python语言的功能太强大了,可以制作出很多想想的作品来,不信吗?用Python代码还可以画出小猪佩奇,代码其实很简单的,下面,就将几个关键步骤代码分享出来. 怎么用Python代码画小猪佩奇? 首 ...

最新文章

  1. Spring ----Bean的生命周期
  2. aapt2 生成资源 public flag 标记
  3. 库壳的一些有趣面试题
  4. ServletContext_概述
  5. 寄存器(cpu工作原理)
  6. python安装到桌面的路径是什么_Python 获取windows桌面路径的5种方法小结
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的化妆品售卖系统
  8. C语言 gcc 静态库
  9. 关于结合测试时,数据准备的一些注意点 (之开始篇:如何能更快,更好的准备测试数据)。
  10. sql2012找不到到服务器,SQL Server无法连接到服务器怎么办
  11. 用r语言分析janeausten_R语言相关性分析
  12. 率辉考研oj——1323: 算法2-1:集合union
  13. 计算机表格制作ppt,计算机基础使用excel2003制作表格.ppt
  14. 体重测试仪软件,一键校准身高体重测量仪
  15. 解决bootstrap中模态框打开时页面发生一瞬间移动
  16. hdmi接口有什么用_VGA、DVI、HDMI三种视频信号接口有什么区别呢
  17. “古董级” 诺基亚功能机跑Linux是怎样的画风?
  18. 服务器端性能的关键指标,应用服务器性能评价关键指标
  19. TCP粘包、半包原理及解决方案
  20. Windows-给Administrator设置指纹登陆

热门文章

  1. 应该担心什么不应该关心什么(做正确的事,把事情做对)
  2. 【Nutz】Nutz起步
  3. python将字符串s和换行符写入文件fp_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件...
  4. 京东方校园招聘页面重构
  5. eem二级c语言题库哪种比较好,c语言小知识,供初学者参考
  6. 又见5G骗局?移动电信联通铁塔广电联合声明!
  7. 不眠者-泽队:广东省工科赛—全地形越障排爆组(开源7天)
  8. thinkphp PHPExcel 导入数据
  9. 菜鸟看马云卸任以及未来的阿里巴巴
  10. CSDN/博客园等博客的文章搬家到wordpress网站