媒介変数表示を実現するスーパークラスを作ります。
/**
* 媒介変数表示
*
*/
public abstract class MyParameter {
// 次の2つを書き換える
public abstract double fx(double t);
public abstract double fy(double t);
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JApplet;
public abstract class Tpl21 extends JApplet {
protected MyScreen sc;
MyShape sp = new MyShape();
public void init() {
// 画面の初期化
sc = new MyScreen(getSize());
sc.setScale(50);
sc.moveOrgCenter();
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
// 図形アンチエイリアス処理
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// 画面のクリア
g2.clearRect(0, 0, getWidth(), getHeight());
// x軸、y軸
g2.setColor(Color.black);
g2.draw(sp.LineX(sc));
g2.draw(sp.LineY(sc));
draw(g2);
}
// グラフを描く
public void drawParameter(Graphics2D g2, MyParameter mp, double min, double max) {
double t = min;
int x1, y1, x2, y2;
while (t < max) {
x1 = sc.gx(mp.fx(t));
y1 = sc.gy(mp.fy(t));
t += 0.1;
x2 = sc.gx(mp.fx(t));
y2 = sc.gy(mp.fy(t));
g2.drawLine(x1, y1, x2, y2);
}
}
public void drawParameter(Graphics2D g2, MyParameter mp) {
drawParameter(g2, mp, 0, 2 * Math.PI);
}
// これをオーバーライドする
public abstract void draw(Graphics2D g2);
}