我做到是基于IFS的绘图有一段程序如下:
double a1,a2,a3,a4,a5,a6,b1,b2,c1,c2;
e.fillOval(s.x, s.y, 5, 5);
double arr[][]=new double[][]{{0.08,0,0,0.5,0,0,0.1},{0.836,0.044,-0.044,0.836,0,0.169,0.5},{-0.141,0.302,0.302,0.141,0,0.127,0.2},{0.141,-0.302,0.302,0.141,0,0.169,0.2}};
for(int i=1;i<20000;i++){
double p=Math.random();
if(p<arr[0][6]){
a1=arr[0][0];
a2=arr[0][1];
a3=arr[0][2];
a4=arr[0][4];
a5=arr[0][5];
a6=arr[0][6]; }
else if(p<(arr[0][6]+arr[1][6])){
a1=arr[1][0];
a2=arr[1][1];
a3=arr[1][2];
a4=arr[1][4];
a5=arr[1][5];
a6=arr[1][6]; }
else if(p<(arr[0][6]+arr[1][6]+arr[2][6])){
a1=arr[2][0];
a2=arr[2][1];
a3=arr[2][2];
a4=arr[2][4];
a5=arr[2][5];
a6=arr[2][6]; }
else if(p<=1){
a1=arr[3][0];
a2=arr[3][1];
a3=arr[3][2];
a4=arr[3][4];
a5=arr[3][5];
a6=arr[3][6];
}
b1=s.x;b2=s.y;
s.x=a1*b1+a2*b2+a5;
s.y=a3*b1+a4*b2+a6;
e.fillOval(s.x, s.y, 5, 5);
}
}
基本意思是根据一个随即数,随即套用公式,得出一种蕨类的图片,可计算出的坐标是小数,请问该怎样画点
double a1,a2,a3,a4,a5,a6,b1,b2,c1,c2;
e.fillOval(s.x, s.y, 5, 5);
double arr[][]=new double[][]{{0.08,0,0,0.5,0,0,0.1},{0.836,0.044,-0.044,0.836,0,0.169,0.5},{-0.141,0.302,0.302,0.141,0,0.127,0.2},{0.141,-0.302,0.302,0.141,0,0.169,0.2}};
for(int i=1;i<20000;i++){
double p=Math.random();
if(p<arr[0][6]){
a1=arr[0][0];
a2=arr[0][1];
a3=arr[0][2];
a4=arr[0][4];
a5=arr[0][5];
a6=arr[0][6]; }
else if(p<(arr[0][6]+arr[1][6])){
a1=arr[1][0];
a2=arr[1][1];
a3=arr[1][2];
a4=arr[1][4];
a5=arr[1][5];
a6=arr[1][6]; }
else if(p<(arr[0][6]+arr[1][6]+arr[2][6])){
a1=arr[2][0];
a2=arr[2][1];
a3=arr[2][2];
a4=arr[2][4];
a5=arr[2][5];
a6=arr[2][6]; }
else if(p<=1){
a1=arr[3][0];
a2=arr[3][1];
a3=arr[3][2];
a4=arr[3][4];
a5=arr[3][5];
a6=arr[3][6];
}
b1=s.x;b2=s.y;
s.x=a1*b1+a2*b2+a5;
s.y=a3*b1+a4*b2+a6;
e.fillOval(s.x, s.y, 5, 5);
}
}
基本意思是根据一个随即数,随即套用公式,得出一种蕨类的图片,可计算出的坐标是小数,请问该怎样画点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货