コッホ曲線を、アフィン変換と確率を利用し、点の集合として描画したいのですが、点が表示されません。コンパイルエラーなどはでません。どこがおかしいのでしょうか。
import java.awt.;
import javax.swing.;
import java.util.Random;
public class Kadai06d extends JFrame{
private MyPanel sp;
public static void main(String[] args){ Kadai06d sm=new Kadai06d(); } public Kadai06d(){ super("Kadai06d"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(800,800); sp=new MyPanel(); add(sp, BorderLayout.CENTER); setVisible(true); } public class MyPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); double[][] A1=new double[2][2]; double[][] A2=new double[2][2]; int[] b1=new int[2]; int[] b2=new int[2]; A1[0][0]=0.5; A1[0][1]=0.288675; A1[1][0]=0.288675; A1[1][1]=-0.5; A2[0][0]=-0.5; A2[0][1]=-0.288675; A2[1][0]=0.288675; A2[1][1]=-0.5; b1[0]=0; b1[1]=0; b2[0]=1; b2[1]=0; int N=10; int size=800; double[] x=new double[N+1]; double[] y=new double[N+1]; x[0]=0; y[0]=0; for(int i=0;i<N;i++){ if(Math.random()<0.5){ x[i+1]=A1[0][0]*x[i]+A1[0][1]*y[i]+b1[0]; y[i+1]=A1[1][0]*x[i]+A1[1][1]*y[i]+b1[1]; }else{ x[i+1]=A2[0][0]*x[i]+A2[0][1]*y[i]+b2[0]; y[i+1]=A2[1][0]*x[i]+A2[1][1]*y[i]+b2[1]; } g.drawLine((int)x[i+1]*size,(int)y[i+1]*size,(int)x[i+1]*size,(int)y[i+1]*size); //g.drawLine(10,20,20,20); } } }
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/28 01:37