アットウィキロゴ

ぽly

package circle;
 
 
public class pro {
 
     int[] polx=new int[36];
   int[] poly=new int[36];
    int[][] group=new int[500][500];
     int[][] subgroup=new int[500][500];
   int cx,cy,len;
    int w,h;
 int mx,nx;
 int th;   
  int[] trianglex=new int[4];
 int[] triangley=new int[4];
 int avx,avy;
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
pro(){
 
   w=500;
        h=500;
 
        for(mx=150;mx<400;mx++){
        for(nx=120;nx<350;nx++){
        group[mx][nx]=100;
        }
        }
 
    polygon sub=new polygon();
    sub.w=w;
    sub.h=h;
    sub.group=group;
    sub.makedata(200,200);
    polx=sub.polx;
    poly=sub.poly;
 
    int ch,th1;
    avx=0;
    avy=0;
     for(th=0;th<36;th++){
     avx=avx+polx[th];
       avy=avy+poly[th];
 
     }
    avx=avx/36;
    avy=avy/36;
 
 
    for(th=0;th<36;th++){   
     trianglex[1]=polx[th];
     triangley[1]=poly[th];
     th1=th+1;  
     if(th1>35)th1=0;
     trianglex[2]=polx[th1];
     triangley[2]=poly[th1]; 
     trianglex[3]=avx;
     triangley[3]=avy; 
     triangle sub4=new triangle();
    sub4.trianglex=trianglex;
    sub4.triangley=triangley;
     for(mx=0;mx<h;mx++){
     for(nx=0;nx<w;nx++){
    ch=sub4.makedata(mx,nx);
    if(ch>50)subgroup[mx][nx]=100;
    }    
     }
    }
 
 
    graph sub2=new graph();
   sub2.subgroup=subgroup;
   sub2.makedata();
 
 
}
}
 
 
 
 
package circle;
 
 
public class triangle {
 
     double[][] a=new double[2][2];
double[][] b=new double[2][1];
double[] sol=new double[2];
 int[] trianglex=new int[4];
 int[] triangley=new int[4];
 
 
    int makedata(int mx,int nx){
 
 
       a[0][0]=trianglex[1]-trianglex[3];
       a[0][1]=trianglex[2]-trianglex[3];
       a[1][0]=triangley[1]-triangley[3];
       a[1][1]=triangley[2]-triangley[3];
       b[0][0]= nx-trianglex[3];
       b[1][0]= mx-triangley[3];
 
       matrix sub=new matrix();
       sub.a=a;
       sub.b=b;
       sub.makedata();
       sol=sub.sol;
 
       int z,ch;
 
       z=0;
       if(sol[0]>1)z=100;
       if(sol[1]>1)z=100;
        if(sol[0]<0)z=100;
       if(sol[1]<0)z=100;
       if(sol[0]+sol[1]>1)z=100;
        if(sol[0]+sol[1]<0)z=100;
 
        ch=0;
        if(z<60)ch=100;
 
 
 
 
        return ch;
 
    }
}
 
 
package circle;
 
 
 
public class polygon{
 
    int th;
    double[] cirx=new double[36];
    double[] ciry=new double[36];
   int[] polx=new int[36];
   int[] poly=new int[36];
    int[][] group=new int[500][500];
 
   int cx,cy,len;
    int mx,nx;
    int w,h;
 
 
 
 
    void makedata(int cy1,int cx1){
 
 
   circle();
 
 
   cx=cx1;
   cy=cy1;
 
   polygon();
 
 
    }
 
    void polygon(){
 
   int x1,y1;     
   int len,z,ch;
 
   for(th=0;th<36;th++){
   ch=0;
   polx[th]=cx;
   poly[th]=cy;
   for(len=1;len<500;len++){
   x1=cx+(int)(len*cirx[th]);
   y1=cy+(int)(len*ciry[th]);
   if(x1>w-1)x1=w-1;
    if(x1<0)x1=0;
   if(y1>h-1)y1=h-1;
   if(y1<0)y1=w-1;
   z=0;
   if(group[y1][x1]>50)z=z+1;
   if(ch<50)z=z+1;
   if(z<2)ch=100;
   if(z==2)polx[th]=x1;
   if(z==2)poly[th]=y1;
   }
 
   }
 
 
    }
void circle(){
 
     double pi;
    double c;
    int th1;
 
 
    pi=3.1415;
 
    for(th=0;th<19;th++){
    c=Math.sin(th*pi/18);
    ciry[th]=c;
    c=Math.cos(th*pi/18);
    cirx[th]=c;
    }
 
    for(th=19;th<36;th++){
    th1=th-18;
   c=Math.sin(th1*pi/18);
    ciry[th]=-c;
    c=Math.cos(th1*pi/18);
    cirx[th]=-c;
    }
 
 
}
}
 
 
 
 
package circle;
 
 
 
import Jama.*;
 
 
public class matrix{
 
  double[][] a=new double[2][2];
double[][] b=new double[2][1];
double[] sol=new double[2];
 
void makedata(){ 
 
Matrix M =new Matrix(a);
Matrix Mb =new Matrix(b);
Matrix z=M.solve(Mb);
 
sol[1]=z.get(1,0);
sol[0]=z.get(0,0);
 
 
}    
}
 
最終更新:2013年11月10日 06:52