2000年7月6日更新(新規作成)
関谷トップページへ
CGトップページへ
戻る(Java8章ページへ)
このプログラムを実行のページへ
中山、例GraphicsG12t.java インタラクティブベジェ曲線の作成(Applet版)
//GraphicsG12t.java インタラクティブベジェ曲線の作成
// Applet プログラムへの移植 2000.7.6 KPC sekiya
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.applet.*; // 1 add
public class GraphicsG12t extends Applet implements MouseListener, MouseMotionListener
{
int px=200,py=50,dx=400,dy=350;
public void init(){ // GraphicsG12() {
setBackground(Color.yellow); // from main()
setLayout(new BorderLayout()); // add for Applet
addMouseListener(this);
addMouseMotionListener(this);
// addWindowListener(new WinAdapter());
}
/* public static void main(String ar[]) {
Frame f=new GraphicsG12();
f.setTitle("インタラクティブベジェ曲線の作成(マウスでコントロール点を変えられる)");
f.setSize(new Dimension(640,400));
f.setBackground(Color.yellow);
f.show();
}
class WinAdapter extends WindowAdapter {
public void windowClosing(WindowEvent we){ System.exit(0);}
} */
// class MouAdapter extends MouseAdapter {
public void mouseClicked(MouseEvent me) {
px=me.getX();
py=me.getY();
repaint();
}
// }
// class MotAdapter extends MouseMotionAdapter {
public void mouseDragged(MouseEvent me) {
dx=me.getX();
dy=me.getY();
repaint();
}
public void mouseReleased(MouseEvent e) { } // JDK 1.1
public void mousePressed(MouseEvent e) { } // JDK 1.1
public void mouseEntered(MouseEvent e) { } // JDK 1.1
public void mouseExited(MouseEvent e) { } // JDK 1.1
public void mouseMoved(MouseEvent e) { } // JDK 1.1
// }
public void paint(Graphics g){
Graphics2D g2=(Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
GeneralPath p = new GeneralPath();
p.moveTo(50, 200);
p.curveTo(px, py, dx, dy, 600,200);
g2.setColor(Color.blue);
g2.setStroke(new BasicStroke(12f));
g2.draw(new Ellipse2D.Double(45,195,10,10));
g2.draw(new Ellipse2D.Double(595,195,10,10));
g2.draw(p);
g2.setColor(Color.red);
g2.setStroke(new BasicStroke(1f));
g2.drawLine(50,200,px,py);
g2.drawLine(600,200,dx,dy);
g2.drawRect(px,py,5,5);
g2.fillRect(dx,dy,5,5);
g2.drawString("インタラクティブベジェ曲線の作成(マウスclick□, dragg●でコントロール点を変えられる)", 20, 20);
}
}