// // exMClick1 2001/12/02 by ONOZATO Takehisa // // サンプル:マウスクリック(三角形の対称移動) // // // import java.awt.*; import java.applet.*; import java.awt.event.*; public class exMClick1 extends Applet implements MouseListener{ Image ofs; Graphics grf; //オフスクリーン int ofsWidth=400; int ofsHeight=300; Color ofsBG=new Color(255,255,255); //背景色(白) int pX0[]={130,270,220}; int pY0[]={190,190,100}; //元の三角形の頂点座標 int pX[]=new int[3]; int pY[]=new int[3]; //点対称な三角形の頂点座標 int centerX, centerY; //対称の中心の座標 public void init() { ofs=createImage(ofsWidth,ofsHeight); grf=ofs.getGraphics(); addMouseListener(this); } public void update(Graphics g) { paint(g); } public void paint(Graphics g){ grf.setColor(ofsBG); grf.fillRect(0,0,ofsWidth,ofsHeight); //背景 grf.setColor(Color.black); grf.drawRect(0,0,ofsWidth-1,ofsHeight-1); //枠線 grf.setColor(Color.blue); grf.drawPolygon(pX0,pY0,pX0.length); //元の三角形の描画 for(int i=0; i<3; i++){ pX[i]=2*centerX-pX0[i]; pY[i]=2*centerY-pY0[i]; } grf.setColor(Color.red); grf.drawPolygon(pX,pY,pX.length); //対称な三角形の描画 grf.fillOval(centerX-1,centerY-1,3,3); //対称の中心の描画 g.drawImage(ofs,0,0,this); //オフスクリーンからアプレットへ描画 //ちらつきを防ぐため } /*** マウスのイベントプロシージャ ***/ public void mouseClicked(MouseEvent e){ centerX=e.getX(); centerY=e.getY(); //マウスの座標取得 repaint(); } public void mousePressed(MouseEvent e){} //記述しておく必要あり public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} }