/**
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計,新昌網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新昌等地區(qū)。新昌做網(wǎng)站價格咨詢:13518219792
* @(#)ChinaFlag.java
* ChinaFlag Applet application
* @黑色珊瑚
* @version 1.00 08/05/12
*/
import java.awt.*;
public class ChinaFlag extends Frame {
public static void main(String[] args) {
ChinaFlag cf=new ChinaFlag();
cf.setVisible(true);
}
public ChinaFlag() {
setBounds(100,100,400,300);
setBackground(Color.RED);
}
public void paint(Graphics g) {
drawStar(g,70,100,40);
drawStar(g,140,60,12);
drawStar(g,155,86,12);
drawStar(g,155,113,12);
drawStar(g,140,140,12);
}
private void drawStar(Graphics g,int x,int y,int width) {
double[] xb={0,
0.2245139882897926f, // sin18 * tan36
1.0514622242382672f, // 1 / cos18
0.3632712640026804f, // (sin18 * cos36) * sin72
0.5877852522924731f,0, // sin36 , 0
-0.5877852522924731f, // -sin36
-0.3632712640026804f, // -(sin18 * cos36) * sin72
-1.0514622242382672f, // -1 / cos18
-0.2245139882897926f}; // -sin18 * tan36
double[] yb={-1,
-0.3090169943749474f,
-0.3090169943749474f,
0.1180339887498948f, //
0.8090169943749474f,
0.3819660112501051f,
0.8090169943749474f,
0.1180339887498948f, //
-0.3090169943749474f,
-0.3090169943749474f};
g.setColor(Color.YELLOW);
int[] x1=new int[10];
int[] y1=new int[10];
for (int i=0; i10; i++) {
x1[i]=(int)(xb[i]*width+x);
y1[i]=(int)(yb[i]*width+y);
}
g.fillPolygon(x1,y1,10);
}
}
有兩中方法:
1 事先你已經(jīng)有這個圖片了,就是用代碼再往過取一下 ,用awt的image對象,自己可以百度具體寫法。
2 想完全用代碼畫一個,那么就得研究米字國旗,的顏色分布、位置坐標(biāo)等信息,這個工作我還真沒做過,自己研究一下應(yīng)該沒問題:先畫一個白色長方形,然后紅色米字的布局坐標(biāo)(為了設(shè)置紅顏色),然后其他地方顏色設(shè)置,一步步測試。說白了,也就是個顏色、坐標(biāo)、比例等計算問題。
給你一個五星紅旗的applet,用applet查看器就可以看。其它的你自己來吧
import java.awt.*;
import java.applet.*;
public class HongQi extends Applet{
int r1=30; //外接大圓半徑
int r0=(int)(r1*Math.cos(72*Math.PI/180)); //內(nèi)圓半徑
// 以下是大五角星坐標(biāo)
int[] xrr={
(int)0, (int)(r0*Math.cos(54*Math.PI/180)),
(int)(r1*Math.sin(72*Math.PI/180)), (int)(r0*Math.cos(18*Math.PI/180)),
(int)(r1*Math.cos(54*Math.PI/180)), (int)0,
(int)((-r1)*Math.cos(54*Math.PI/180)),(int)((-r0)*Math.cos(18*Math.PI/180)),
(int)((-r1)*Math.sin(72*Math.PI/180)),(int)((-r0)*Math.cos(54*Math.PI/180))
};
int[] yrr={
(int)-r1, (int)(-r0*Math.sin(54*Math.PI/180)),
(int)(-r1*Math.cos(72*Math.PI/180)), (int)((r0)*Math.sin(18*Math.PI/180)),
(int)((r1)*(Math.sin(54*Math.PI/180))), (int)(r0),
(int)((r1)*(Math.sin(54*Math.PI/180))), (int)((r0)*Math.sin(18*Math.PI/180)),
(int)(-r1*Math.cos(72*Math.PI/180)), (int)(-r0*Math.sin(54*Math.PI/180)),
};
int[] xrr0=new int[10]; //小五角星坐標(biāo)
int[] yrr0=new int[10];
public void init(){
for (int i = 0; i xrr.length; i++) { //計算大五角星坐標(biāo)平移
xrr[i]+=50;
yrr[i]+=60;
}
for (int i = 0; i xrr0.length; i++) { //計算小五角星坐標(biāo)平移
xrr0[i]=xrr[i]/3;
xrr0[i]+=80;
yrr0[i]=yrr[i]/3;
yrr0[i]+=17;
}
}
public void paint(Graphics g){
g.setColor(Color.RED);
g.fillRect(0,0,300,200);
g.setColor(Color.YELLOW);
g.fillPolygon(xrr,yrr,10);
g.fillPolygon(xrr0,yrr0,10);
g.copyArea(88,25,20,20,15,18);
g.copyArea(88,25,20,20,15,38);
g.copyArea(88,25,20,20,0,58);
}
}
新聞名稱:java畫國旗代碼 java畫五星紅旗的編程代碼
文章網(wǎng)址:http://jinyejixie.com/article18/dochpgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、自適應(yīng)網(wǎng)站、云服務(wù)器、做網(wǎng)站、App開發(fā)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)