媒介変数表示を実現するスーパークラスを作ります。
/** * 媒介変数表示 * */ 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); }