物件導向程式設計

 

 

在Applet繪製曲線圖

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw

E-mail : neotech@ms19.hinet.net 

 


A.1 一個繪製科學曲線的物件類別庫

A.2 繪製曲線外框和座標軸

  

範例程式碼:

import PlotApplet.*;
import java.awt.*;
import java.applet.Applet;
public class PlotDemo1 extends PlotApplet 
{
    public void init () 
    {
        super.newPlot();
        super.init();
        plot().setTitle("1-D時間序列曲線圖");
        plot().setYRange(-4, 4);
        plot().setXRange(0, 100);
        plot().setXLabel("時間");
        plot().setYLabel("函數值");
        plot().addYTick("-PI", -Math.PI);
        plot().addYTick("-PI/2", -Math.PI/2);
        plot().addYTick("0", 0);
        plot().addYTick("PI/2", Math.PI/2);
        plot().addYTick("PI", Math.PI);
    }
}

 A.3 加上曲線

 

範例程式碼

import PlotApplet.*;
import java.awt.*;
import java.applet.Applet;
public class PlotDemo2 extends PlotApplet 
{
    public void init () 
    {
        super.newPlot();
        super.init();
        plot().setTitle("1-D時間序列曲線圖");
        plot().setYRange(-10, 10);
        plot().setXRange(0, 100);
        plot().setXLabel("時間");
        plot().setYLabel("函數值");
        plot().addYTick("-10", -10);
        plot().addYTick("-5", -5);
        plot().addYTick("0", 0);
        plot().addYTick("5", 5);
        plot().addYTick("10", 10);
        plot().addPoint(0, 0.0, 10 * Math.cos(0),false);
        for (int i = 1; i <= 100; i++) 
        {
            plot().addPoint(0, (double)i, 10 * Math.cos(Math.PI * i/20),true);
        }
    }
}

A.4 繪製多重曲線

 

範例程式碼

import PlotApplet.*;
import java.awt.*;
import java.applet.Applet;
public class PlotDemo3 extends PlotApplet 
{
    public void init () 
    {
        super.newPlot();
        super.init();
        plot().setTitle("1-D曲線圖");
        plot().setYRange(-4, 4);
        plot().setXRange(0, 100);
        plot().setXLabel("時間");
        plot().setYLabel("函數值");
        plot().addYTick("-PI", -Math.PI);
        plot().addYTick("-PI/2", -Math.PI/2);
        plot().addYTick("0", 0);
        plot().addYTick("PI/2", Math.PI/2);
        plot().addYTick("PI", Math.PI);
        boolean first = true;
        for (int i = 0; i <= 100; i++) 
        {
            plot().addPoint(0, (double)i,
                    5 * Math.cos(Math.PI * i/20), !first);
            plot().addPoint(1, (double)i,
                    4.5 * Math.cos(Math.PI * i/25), !first);
            plot().addPoint(2, (double)i,
                    4 * Math.cos(Math.PI * i/30), !first);
            plot().addPoint(3, (double)i,
                    3.5* Math.cos(Math.PI * i/35), !first);
            first = false;
        }
    }
}

 

 


 

物件導向程式設計

義守大學電機系 陳慶瀚 
2001.12.12