- 1 名前:デフォルトの名無しさん [02/04/15 12:09]
- 7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
- 703 名前:デフォルトの名無しさん [02/08/31 07:07]
- 奥村本よりフラクタル圧縮画像の表示
現在10行 import java.awt.*;class F{public static void main(String[]a){new Frame(){double x,y,s,t;int N,M,i,j,k,r,z[]=new int[6],h[]=new int[M=150];double[]a={.05,.05, .46,.47,t=.42,t},b={0,0,-.32,-.15,.28,.26},c={0,0,.39,.17,-.25,-.35},d={.6,-.5, .38,t,.45,.31,0,1,.6,1.1,1,.7},p=new double[6];{resize(600,600);show();}public void paint(Graphics g){for(;i<6;s+=p[z[i]=i++])p[i]=Math.abs(a[i]*d[i]-b[i]*c[i ]);for(;j<6;z[k]=r){for(k=i=j;++i<6;)k=p[i]<p[k]?i:k;t=p[j];p[j]=p[k];p[k]=t;r= z[j];z[j++]=z[k];}r=M;for(i=0;i<6;s-=p[i++])for(k=(int)(r*p[i]/s+.5);k-->0;)h[ --r]=z[i];for(i=0;i<50000;i++){j=h[(int)(Math.random()*M)];g.setColor(new Color (1<<(r>1&N>1&k>1&j>1?15:23)));r=N;N=k;t=a[k=j]*x+b[j]*y;y=c[j]*x+d[j]*y+d[6+j]; x=t;if(i>9)g.drawRect(300+(int)(250*x),550-(int)(250*y),0,0);}}};}}
- 704 名前:703 mailto:sage [02/08/31 08:45]
- ソート部分いらないかった。再描画時のバグを修正。
9行になりました。 import java.awt.*;class F{public static void main(String[]a){new Frame(){double x,y,s,t;int M=150,N=M,i,j,k,r,z[]=new int[156];double[]a={.05,.05,.46,.47,t=.42 ,t},b={0,0,-.32,-.15,.28,.26},c={0,0,.39,.17,-.25,-.35},d={.6,-.5,.38,t,.45,.31 ,0,1,.6,1.1,1,.7},p=new double[6];{for(resize(600,600);i<6;s+=p[z[i]=i++])p[i]= Math.abs(a[i]*d[i]-b[i]*c[i]);for(;j<6;s-=p[j++])for(k=(int)(N*p[j]/s+.5);k-->0 ;)z[--N+6]=z[j];show();}public void paint(Graphics g){for(i=0;i<50000;i++){j=z[ (int)(Math.random()*M)+6];g.setColor(new Color(1<<(r>1&N>1&k>1&j>1?15:23)));r=N ;N=k;t=a[k=j]*x+b[j]*y;y=c[j]*x+d[j]*y+d[6+j];x=t;g.drawRect(300+(int)(250*x), 550-(int)(250*y),0,0);}}};}}
- 705 名前:703 mailto:sage [02/08/31 10:31]
- かなり強引ですが、7行達成。
import java.awt.*;class F{public static void main(String[]a){new Frame(){int M, N,i,j,k,r,z[]=new int[k=600],w[]={7,6,74,55,64,55};double x,y,t,a[]={.05,.05,x= .46,x,t=.42,t,0,0,-.32,-.15,y=.26,y},c[]={0,0,.4,.17,-y,-.35,.6,-.5,.38,t,x,.31 ,0,1,.6,1.1,1,.7};public void paint(Graphics g){for(i=0;i++<M*M;g.drawRect(300+ (int)(280*x),550-(int)(250*y),0,0)){j=z[(int)(Math.random()*M)];g.setColor(new Color(1<<(r>1&N>1&k>1&j>1?15:23)));r=N;N=k;t=a[k=j]*x+a[6+j]*y;y=c[j]*x+c[6+j]* y+c[12+j];x=t;}}{for(resize(k,k);i<6;i++)for(;w[i]-->0;)z[M++]=i;show();}};}}
|

|