アットウィキロゴ

nux43

var x = new Array();
var y = new Array();
var dir = new Array();
var number_dir = new Array();
var point = new Array();
var number_peak;
var peak = new Array();
 
var number_group=new Array();
var group = new Array();
 
function sample(){
 
 
       tx = 0;
for(s=1;s<6;s++){
for(sx=1;sx<6;sx++){
    tx = tx + 1;
    x[tx] = s;
    y[tx] = sx;    
}}
 
for(t=1;t<26;t++){
    tx = 0;
dir[t] = new Array();
for(s1=-1;s1<2;s1++){
for(s2=-1;s2<2;s2++){
    x1 = x[t] + s1;
    y1 = y[t] + s2;
    sx = search(x1, y1);
  if(sx==t)sx=0;
    if (sx > 0) tx = tx + 1;
    if (sx > 0) dir[t][tx] = sx;
}}
number_dir[t] = tx;
}
 
for(s=1;s<26;s++){
n=25*Math.random();
point[s]=Math.floor(n)+1;    
}    
 
seek();    
 
 
for(s=1;s<number_peak+1;s++){
number_group[s]=1;
group[s]=new Array();
group[s][1]=peak[s];
}     
 
mount(1);
 
paint();
 
 
}
function seek(){
 
tx=0;    
for(s=1;s<26;s++){
h=0;    
for(sx=1;sx<number_dir[s]+1;sx++){
s1=dir[s][sx];
if(point[s1]>point[s])h=100;    
}   
if(h<50)tx=tx+1;
if(h<50)peak[tx]=s;
}  
 
number_peak=tx;    
 
 
 
 
 
}
 
function mount(g1){
 
 
 
mode=0;
var q=new Array();
var pol=new Array();
 
    for(s=1;s<26;s++){
    q[s]=0;
    }
 
    for(s=1;s<number_group[g1]+1;s++){
 s1=group[g1][s];
    for(sx=1;sx<number_dir[s1]+1;sx++){
    s2=dir[s1][sx];
    q[s2]=100;
    }
    }
 
    for(s=1;s<number_group[g1]+1;s++){
    s1=group[g1][s];
    q[s1]=0;
    }
 
 
 sx=0;
    for(s=1;s<26;s++){
    if(q[s]>49)sx=sx+1;
    if(q[s]>49)pol[sx]=s;    
    }
number_pol=sx;
 
mode=0;
tr=1;
while(mode>40){
 
ch=check(g1,pol[tr]);
 
if(ch>50)mode=100; 
 
tr=tr+1;
if(tr>number_pol)mode=100;
 
}
 
 
 
 
}
 
 
 
 
function check(g1,s1){
 
var number_sub=number_group[g1]+1;
var number_boader;
var boader=new Array();
var subx=new Array();
var p=new Array();
 
 
 
for(s=1;s<number_sub;s++){
subx[s]=group[g1][s];    
}    
 
subx[number_sub]=s1;    
 
    for(s=1;s<26;s++){
    p[s]=0;
    }
 
    for(s=1;s<number_sub+1;s++){
    for(sx=1;sx<number_dir[s]+1;sx++){
    s2=dir[s][sx];
    p[s2]=100;
    }
    }
 
    for(s=1;s<number_sub+1;s++){
    s2=subx[s];
    p[s2]=0;
    }
 
 
    sx=0;
    for(s=1;s<26;s++){
    if(p[s]>49)sx=sx+1;
    if(p[s]>49)boader[sx]=s;    
    }
 
    number_boader=sx;
 
minp=999;
    for(s=1;s<number_sub+1;s++){
    s1=subx[s];
    if(point[s1]<minp)minp=point[s1];
    }
 
    maxp=0;
    for(s=1;s<number_boader+1;s++){
    s1=boader[s];
    if(point[s1]<minp)maxp=point[s1];
    }
 
 
    delta=0;
    if(minp>maxp)delta=100;
 
    if(delta>50)number_group[g1]=number_group[g1]+1;
    n=number_group[g1];
    if(delta>50)group[g1][n]=s1;
 
    return delta;
 
}
 
 
 
 
function paint(){
 
var sub=new svgpaint();
 
str="<svg width=\"500\" height=\"500\">";
 
for(t=1;t<26;t++){
str=str+sub.rect(100*x[t]-100,100*y[t]-100,100,100,"red");  
}  
 
 
 for(t=1;t<number_peak+1;t++){
s=peak[t];     
str=str+sub.rect(100*x[s]-100,100*y[s]-100,100,100,"green");   
}  
 
 for(t=1;t<26;t++){  
str=str+sub.text(100*x[t]-50,100*y[t]-50,20,""+point[t]);
}  
 
str=str+"</svg>";
 
$("#memo").html(str);
 
}
 
 
 
function search(x1,y1){
 
    var s,sx,h;
    sx=0;
    for (s = 1; s < 26; s++) {
        h = 0;
        if (x[s] == x1) h = h + 1;
        if (y[s] == y1) h = h + 1;
        if (h == 2) sx = s;
    }
    return sx;
 
}
 
最終更新:2015年10月29日 15:49