トップページ > フーリエ変換入門(FFT入門) > グラフの準備(4)

とりあえずsin関数を描画

前回作ったGraphCanvasクラスを使います。

GraphCanvasクラスそのものはグラフ描画をするだけなので、フレームやmain()メソッドなどは 別に用意する必要があります。今回は面倒なことは後回しにして、今後使うアプリケーションの ベースとなる“MainFrame”クラスを作り、GraphCanvasにsin波形を表示させてみます。 フレームやコンテントペインの生成など、ほとんど前に使ったCanvas_testクラスと同じです。 違うところは、Canvasクラスではなく自前のGraphCanvasクラスを使っている点と、 GraphCanvasのdata配列へsinの値を代入しているところです。ここについては 後々解説します。

なお、このMainFrameクラスと前回のGraphCanvasクラスは同じディレクトリに保存する必要があります。

ソースコード : MainFrame.java

//******************************************************************************
//MainFrame.java
//グラフ描画のためのアプリケーションの外枠です。
//******************************************************************************


//==============================================================================
//クラスライブラリのインポート
//==============================================================================
import java.awt.*;
import javax.swing.*;


//==============================================================================
//MainFrame
//==============================================================================
public class MainFrame
{


 //=============================================================================
 //main()メソッド
 //=============================================================================
 public static void main(String[] args)
 {

  //============================================================================
  //フレーム作成
  JFrame frame = new JFrame();
  frame.setTitle("MainFrame");
  frame.setBounds(100,100,480,380);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setLayout(null);
  frame.setResizable(false);
  

  //============================================================================
  //コンテントペイン作成 
  JPanel cp = new JPanel();
  cp.setLayout(null);
  frame.add(cp);
  cp.setBounds(38,20,400,300);
  

  //============================================================================
  //GraphCanvas作成 
  GraphCanvas canvas = new GraphCanvas(400,300);
  cp.add(canvas);


  //============================================================================
  //GraphCanvasのdataにsin波形を入れます。
  for(int i=0;i\gtcanvas.getWidth();i++)
  {
   canvas.data[i] = 100*Math.sin((i-canvas.getWidth()/2+1)*Math.PI/((canvas.getWidth())/2));
  }
   

  //============================================================================
  //フレーム可視化
  frame.setVisible(true);
 }
}

実行画面




前へ  戻る