Java实现画八卦
八卦是由多个圆叠加而成,如果我们让每个圆都有自己的颜色,那么具体结构便一目了然,如下图所示:
显然只要令对应的圆颜色相同,就能达到我们预期的效果。
用Java就能轻松画出来:
- import java.awt.BasicStroke;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.RenderingHints;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class BaGua extends JPanel {
- public BaGua() {
- this.setPreferredSize(new Dimension(600, 580)); // 设置首选大小
- }
- /**
- * 画八卦
- */
- public void drawBaGua(Graphics2D g2d) {
- Color color1 = Color.WHITE; // 颜色1
- Color color2 = Color.BLACK; // 颜色2
- // 抗边缘锯齿
- g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- // 画背景
- // g2d.clearRect(0, 0, this.getWidth(), this.getHeight());
- g2d.setColor(new Color(220, 230, 240));
- g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
- // 画左半边大圆白背景
- g2d.setColor(color1);
- g2d.fillArc(100, 100, 400, 400, 90, 180);
- // 画右半边大圆黑背景
- g2d.setColor(color2);
- g2d.fillArc(100, 100, 400, 400, -90, 180);
- // 画上面白色圆
- g2d.setColor(color1);
- g2d.fillOval(200, 100, 200, 200);
- // 画下面黑色圆
- g2d.setColor(color2);
- g2d.fillOval(200, 300, 200, 200);
- // 画上面白色圆内的小黑圆
- g2d.setColor(color2);
- g2d.fillOval(270, 170, 60, 60);
- // 画下面黑色圆内的小白圆
- g2d.setColor(color1);
- g2d.fillOval(270, 370, 60, 60);
- // 画边缘的黑弧线
- g2d.setStroke(new BasicStroke(2)); // 设置画笔宽度
- g2d.setColor(color2);
- // g2d.drawArc(100, 100, 400, 400, 0, 360);
- g2d.drawOval(100, 100, 400, 400);
- }
- public void paint(Graphics g) {
- drawBaGua((Graphics2D) g);
- }
- public static void main(String[] args) {
- JFrame win = new JFrame("八卦");
- win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- win.add(new BaGua());
- win.pack();
- win.setLocationRelativeTo(null);
- win.setVisible(true);
- }
- }
运行结果:
Java实现画八卦的更多相关文章
- Java编写画图板程序细节-保存已画图形
没有Java编写画图板程序细节-保存已画图形 一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后 ...
- java GUI画满天星
import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon ...
- 用JAVA自己画一张二维码
我们都知道,最近2年移动支付在中国堪称新四大发明之一. 二维码无处不在,特别是最近的支付宝扫码领红包,微信,qq,到处在发,阿里有点攻占腾讯移动支付市场的势头啊~博主忽然就对二维码是怎么画的有了点好奇 ...
- java 你画我猜 了解一下
0-设计思路: 你画我猜顾名思义,有一个人画,一个人猜,两个思路: 1)一个中央服务器,中转数据,两个client端:,a画对应点的数据通过服务器发给客户端b,b通过这些数据进行绘画,换颜色人,等等, ...
- java动态画圈圈。运用多线程,绘图
总结:只是意外的收获吧.之前一篇是老师教的,一个点,从底层开始升起,到鼠标按下的地方开始画圈圈, 现在改变了一下,因为点上升的一个循环和画圈的循环是分开的 现在让点点自己跑,并且边跑边画圈.而且在fo ...
- [Java画图]画函数图像
利用Graphics类画任意显式函数图像,只需修改代码中的F()函数即可,另外调整timesx和timesy参数来分方向放大或缩小图像.需要重定义坐标系. package test; import j ...
- Java Graphics2D 画出文字描边效果
在CSDN看到的,在此记下. (http://bbs.csdn.net/topics/390703095) import javax.swing.*; import java.awt.*; impor ...
- Java GUI 画点
import java.awt.EventQueue; public class Paint { private JFrame frame; /** * Launch the application. ...
- Java GUI画圆。
package ydj; import java.awt.*; import javax.swing.*; public class huayuan extends JFrame { public h ...
随机推荐
- Linux创建WiFi热点
手机流量用完,需要开WiFi,由于是LinuxMint,感觉配置还算容易,找到一个不错的教程,收藏一下,以备后用.除了修改配置文件那步在我的电脑不需要外其他基本正确,而且Mint本来就衍生自Ubunt ...
- JS点击子元素不触发父元素点击事件(js阻止冒泡)
js阻止冒泡 <html> <title></title> <head> <meta charset="utf-8"> ...
- Visual Studio 2010 下 安装RGiesecke.DllExport
RGiesecke.DllExport 在 UnmanagedExports 中.安装过程如下: 1.首先在"工具"菜单下的"扩展管理器"中,安装 NuGet ...
- git操作---更新删除
1.更新git git pull <远程主机名> <远程分支名> 例如:git pull origin master 2.更新子模块 git submodule updat ...
- Linux 命令
Linux 常用命令 su root 切换root用户 touch /etc/www/html/1.txt 创建文件 mkdir /usr/local/apache2 建立文件夹 rm -rf ...
- MongoDB【第三篇】MongoDB基本操作
MongoDB的基本操作包括文档的创建.删除.和更新 文档插入 1.插入 #查看当前都有哪些数据库 > show dbs; local 0.000GB tim 0.000GB #使用 tim数据 ...
- 推荐几款我一直在用的chrome插件(下)
请先看:推荐几款我一直在用的chrome插件(上) 6. Pocket 可以很方便的保存文章.视频等供以后查看,即实现了“Read it later”功能.有了 Pocket,您可以将所有想下次读的内 ...
- Android之Linearlayouy线性布局
写了个小例子xml代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout x ...
- Mysql字符转义
在字符串中,某些序列具有特殊含义.这些序列均用反斜线('\')开始,即所谓的转义字符.MySQL识别下面的转义序列: \0 ASCII 0(NUL)字符. \' 单引号('''). \" 双 ...
- javascript星级评分(多个)
JS打多个类型星级评分: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...