用java写一个五角星 要求详细过程,都有注释。

2024年12月03日 04:52
有1个网友回答
网友(1):

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){ }
}
}
}
试试