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; // 顏色1Color 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);}
}

運行結果:

?

轉載于:https://www.cnblogs.com/wuqianling/p/5895629.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286129.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286129.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286129.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題四十五之把第1到第p個字符,平移到字符串的最后,把第p+1到最后的字符移到字符串的前部。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

【MATLAB統計分析與應用100例】案例006:matlab數據的標準化變換

文章目錄 1. 調用rand函數產生一個10行,4列的隨機矩陣,每列服從不同的均勻分布2. 調用zscore函數對x進行標準化變換(按列標準化),返回變換后矩陣xz,以及矩陣x各列的均值構成的向量mu,各列的標準差構成的向量sigma3. 變換結果1. 調用rand函數產生一個10行,4列的隨機矩陣…

十一、為影院添加影片制作準備服務《仿淘票票系統前后端完全制作(除支付外)》

一、為影院添加影片的邏輯和思考 首先打開在線編輯器進入我們的項目:https://editor.ivx.cn/ 進入之后找到上一節中制作的頁面,咱們設置點擊編輯按鈕后進入的頁面為影院添加影片頁: 接著咱們查看影院添加影片頁: 在該頁中&…

Linux 內核中斷內幕【轉】

轉自:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/ 本文對中斷系統進行了全面的分析與探討,主要包括中斷控制器、中斷分類、中斷親和力、中斷線程化與 SMP 中的中斷遷徙等。首先對中斷工作原理進行了簡要分析,接著詳細探討了中斷親…

SQL Server表分區

SQL Server表分區 什么是表分區 一般情況下,我們建立數據庫表時,表數據都存放在一個文件里。 但是如果是分區表的話,表數據就會按照你指定的規則分放到不同的文件里,把一個大的數據文件拆分為多個小文件,還可以把這…

apt 根據注解,編譯時生成代碼

apt: Retention后面的值,設置的為CLASS,說明就是編譯時動態處理的。一般這類注解會在編譯的時候,根據注解標識,動態生成一些類或者生成一些xml都可以,在運行時期,這類注解是沒有的~~會依靠動態生…

Web.config配置文件詳解(新手必看)

花了點時間整理了一下ASP.NET Web.config配置文件的基本使用方法。很適合新手參看&#xff0c;由于Web.config在使用很靈活&#xff0c;可以自定義一些節點。所以這里只介紹一些比較常用的節點。 <?xml version"1.0"?> <!--注意: 除了手動編輯此文件以外&…

Hello Playwright:(6)與元素交互

在上一節我們已經了解到如何定位到元素&#xff0c;那么接下來就可以與元素進行交互了。下面的例子都是以百度首頁作為測試頁面輸入文本FillAsync方法用于模擬用戶選中元素并輸入文本&#xff0c;這會觸發元素的 input 事件。該方法只適合<input>、<textarea>等可輸…

C語言試題四十六之將m行n列的二維數組中的字符數據,按列的順序依次放到一個字符串中。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

【MATLAB統計分析與應用100例】案例007:matlab數據的極差歸一化變換

文章目錄 1. 調用rand函數產生一個10行,4列的隨機矩陣,每列服從不同的均勻分布2. 調用rscore函數對x按列進行極差規格化變換, 返回變換后矩陣R,以及矩陣x各列的最小值構成的向量xmin,各列的極差構成的向量xrange1. 調用rand函數產生一個10行,4列的隨機矩陣,每列服從不同…

十二、動態座位響應及用戶訂票《仿淘票票系統前后端完全制作(除支付外)》

一、動態座位設置及發布 首先打開在線編輯器進入我們的項目&#xff1a;https://editor.ivx.cn/ 上一節中已經完成了座位設置的準備&#xff0c;這一節咱們將完成座位設置及發布的功能。 咱們首先給有座位設置事件&#xff1a; 有座位的事件設置當點擊后更改當前的內容為0即…

跨服務器 快速 導入數據表記錄 Insert into SELECT

Use DataBaseName/*開啟Ad Hoc Distributed Queries組件exec sp_configure show advanced options,1 reconfigure exec sp_configure Ad Hoc Distributed Queries,1 reconfigure*/Insert into tableName (col1&#xff0c;col2&#xff0c;col3&#xff0c;……) --字段不能含有…

C# 查詢大型數據集

LINQ 語法非常好&#xff0c;但其作用是什么&#xff1f;我們只要查看源數組&#xff0c;就可以看出需要的結果&#xff0c;為什么要查詢這種一眼就能看出結果的數據源呢&#xff1f;有時查詢的結果不那么明顯&#xff0c;在下面的示例中&#xff0c;就創建了一個非常大的數字數…

C語言試題四十七之程序定義了N×M的二維數組,并在主函數中自動賦值。請編寫函數function(int a[N][M], int m),該函數的功能是:將數組右上半三角元素中的值乘以m。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 程序定義了…

第六章 三大消息摘要算法總結

6.1、MD5 推薦使用CC&#xff08;即Commons Codec&#xff09;實現雖然已被破解&#xff0c;但是仍舊廣泛用于注冊登錄模塊與驗證下載的文件的完整性可以自己寫一個注冊登錄模塊&#xff1b;自己下載一個MD5加密的文件&#xff0c;然后通過之前編寫的工具類&#xff08;或者使用…

一、博客首頁搭建搭建《iVX低代碼仿CSDN個人博客制作》

制作iVX 低代碼項目需要進入在線IDE&#xff1a;https://editor.ivx.cn/ 一、頭部導航欄思路參考 首先我們可以查看CSDN的博客首頁&#xff0c;從中查看一下布局&#xff1a; 在以上首頁中&#xff0c;我們可以得知其頂部為一個整行&#xff0c;這個行內容左側為一個logo&am…

【MATLAB統計分析與應用100例】案例008:調用rand函數生成均勻分布隨機數

文章目錄 1. 生成隨機數分布直方圖2. 生成隨機數矩陣,服從均勻分布1. 生成隨機數分布直方圖 x = rand(10) % 生成10行10列的隨機數矩陣,其元素服從[0,1]上均勻分布 y = x(:)

linux samba服務器

本文轉自wanglm51051CTO博客&#xff0c;原文鏈接&#xff1a; http://blog.51cto.com/studyit2016/1890282&#xff0c;如需轉載請自行聯系原作者

modernizer的意義

modernizer是一個js文件&#xff0c;會檢查當前的瀏覽器支持什么特性&#xff0c;就在Html標簽上添加什么類&#xff0c;然后如果不支持添加no-xxx類&#xff0c;這樣&#xff0c;就可以針對兩種情況寫兩種css。 http://blog.chinaunix.net/uid-21633169-id-4286857.html轉載于…

拆分備份(還原)比較大的數據庫為多個bak文件

工作中由于個別數據庫比較大&#xff0c;生成的備份文件也比較大&#xff0c;不方便存儲或者轉移&#xff0c;可以將文件備份為多個小的bak文件。 比如一個200G的數據庫&#xff0c;可以拆分備份為10個bak文件&#xff0c;則每個bak文件約在20G左右。 備份代碼&#xff1a; /…