一个五角星的JAVA代码是什么?拜托各位了 3Q

如题所述

import java.applet.*; import java.awt.*; public class Wjx extends java.applet.Applet implements Runnable{ Thread PaintThread; public void init() { } public void start(){ PaintThread=new Thread(this); PaintThread.start(); } public void stop(){ PaintThread=null; } public void paint(Graphics g){ //变量定义及初始化 int x[], y[], ox, oy, i, j, R, r, w, h; double a, inca, cura; Color c; int cr, cg, cb; inca=2 * Math.PI / 5; x=new int[10]; y=new int[10]; w=getSize().width; h=getSize().height; //五角星 for (i=0; i<50; i++){ //随机五角星特征 ox=(int)(Math.random() * w); oy=(int)(Math.random() * w); R=(int)(Math.random() * 50); r=(int)(R / 2); a=(int)(Math.random() * 2 * Math.PI / 5); //计算顶点数据 for(j=0; j<10; j+=2){ cura=a + inca * (j / 2); x[j]=ox + (int)(R * Math.sin(cura)); y[j]=oy + (int)(R * Math.cos(cura)); cura=cura + inca / 2; x[j+1]=ox + (int)(r * Math.sin(cura)); y[j+1]=oy + (int)(r * Math.cos(cura)); } cr=(int)(Math.random() * 255); cg=(int)(Math.random() * 255); cb=(int)(Math.random() * 255); c=new Color(cr, cg, cb); //画出五角星 g.setColor(c); g.fillPolygon(x, y, 10); } } public void run() { while(PaintThread!=null){ repaint(); try{ Thread.sleep(125); } catch(InterruptedException E){ } } } }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-15
public class WuJiaoXing_ extends JFrame{ public WuJiaoXing_() { super("绘制五角星"); setSize(200,200); setVisible(true); setLocation(300,300); } public void paint(Graphics g){ super.paint(g); // 定义外切圆和内接圆的半径 int R=50; int r=(int)(R*Math.sin(Math.PI/10)/Math.sin(3*Math.PI/10)); // 定义2个数组,分别存放10个顶点的x、y坐标 int[] x=new int[10]; int[] y=new int[10]; // 通过循环方法给2个数组赋值 for(int i=0;i<10;i++){ if(i%2==0){ x[i]=100+(int)(R*Math.cos(Math.PI/10+(i-1)*Math.PI/5)); y[i]=100+(int)(R*Math.sin(Math.PI/10+(i-1)*Math.PI/5)); } else{ x[i]=100+(int)(r*Math.cos(Math.PI/10+(i-1)*Math.PI/5)); y[i]=100+(int)(r*Math.sin(Math.PI/10+(i-1)*Math.PI/5)); } } // 调用fillPolygon方法绘制 g.setColor(Color.YELLOW); g.fillPolygon(x,y,10); } public static void main (String[] args) { WuJiaoXing_ wjx=new WuJiaoXing_(); wjx.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 这样应该能做出来吧
相似回答