アットウィキロゴ

がめ1029

import java.awt.*;
import java.awt.event.*;

class game1029 extends Frame{

int num,s,m;
double[] data=new double[101];
double[] gdata=new double[101];
double[] alpha=new double[101];
int x;

public static void main(String args[]){
game1029 f=new game1029();
f.setTitle("game1029");
f.setSize(700,700);
f.setBackground(Color.yellow);
f.setVisible(true);
}

game1029(){

num=100;
for (s=0;s<num;s++){
data[s]=100;
}


for (m=0;m<101;m++){
alpha[m]=seekalpha(m,num,data);
}

for (s=0;s<num;s++){
gdata[s]=seekfou(alpha,s,num);
}

addWindowListener(new stopwin());
}

class stopwin extends WindowAdapter{
  public void windowClosing(WindowEvent we){System.exit(0);}
}


public static double seekfou(double[] alpha,int s,int num){
double x,z;
int m;
x=(double)(s*Math.PI/num);
z=alpha[0]/2;
for (m=1;m<100;m++){
z=z+alpha[m]*Math.cos(m*x);
}
return z;
}


public static double seekalpha(int m,int num,double[] data){
int n,nx;
double x1,y1,z;
double delta;
delta=(double)Math.PI/num;
z=0;
for (n=-num+1;n<num;n++){
nx=n;
if (nx<0)nx=-nx;
x1=nx*delta;
y1=data[nx]*Math.cos(m*x1);
z=z+delta*y1;
}
z=z/Math.PI;
return z;
}



public void paint(Graphics g){
int x1,x2;

g.drawLine(100,600,600,600);
g.drawLine(100,600,100,100);

g.setColor(Color.blue);
for (s=0;s<100;s++){
x1=(int)gdata[s];
x2=(int)gdata[s+1];
g.drawLine(100+5*s,600-x1,105+5*s,600-x2);
}

g.setColor(Color.red);
for (s=0;s<100;s++){
x1=(int)data[s];
x2=(int)data[s+1];
g.drawLine(100+5*s,600-x1,105+5*s,600-x2);
}

}

}
最終更新:2011年03月07日 22:21