// 家の回転(マウスで回転) [Gr3d3.java](JDK 1.0.2) import java.applet.Applet; import java.awt.*; //!import java.awt.event.*; // JDK 1.1 //!public class Gr3d3 extends Applet //! implements MouseListener,MouseMotionListener { // JDK 1.1 public class Gr3d3 extends Applet { //! int doX,doY; // マウスの位置 int angX=30,angY=30; // 角度の初期値 Box bx = new Box(); // 直方体の生成 //====================== 座標データ ====================== final double L1=60, L2=120; // 立方体 final double RH=L1+30, L3=L1/2.0; // 屋根 double [][] xRoof={{0,0,L3,L3}, {L1,L3,L3,L1}}; // 屋根 double [][] yRoof={{L1,L1,RH,RH},{L1,RH,RH,L1}}; // 屋根 double [][] zRoof={{0,L2,L2,0}, {0,0,L2,L2}}; // 屋根 double [] xDoor={L3,L3+10,L3+10,L3}; // ドア double [] yDoor={10,10,40,40}; // ドア double [] zDoor={L2,L2,L2,L2}; // ドア Color [] Col={Color.pink,Color.cyan,Color.green, Color.red,Color.white,Color.orange, Color.magenta,Color.gray}; public void init() { // ロード時の初期化メソッド bx.setdata(L1,L1,L2); // 直方体の大きさ setLayout(new BorderLayout()); //!addMouseListener(this); // JDK 1.1 //!addMouseMotionListener(this); // JDK 1.1 setBackground(new Color(128,128,255)); // 背景色 } //end init //!//============= JDK 1.1 イベント処理(マウス) ============= //!public void mousePressed(MouseEvent e) { // 押す JDK 1.1 //! doX=e.getX(); // マウスのボタンを押したx位置 //! doY=e.getY(); // マウスのボタンを押したy位置 //!} //end mousePressed //!public void mouseDragged(MouseEvent e) { // ドラッグ //! angX=angX+(e.getY()-doY); // xの回転角度 //! angY=angY+(e.getX()-doX); // yの回転角度 //! doX=e.getX(); doY=e.getY(); // マウスの位置 //! repaint(); //!} //end mouseDragged //!public void mouseReleased(MouseEvent e) { } // JDK 1.1 //!public void mouseClicked(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 //============= JDK 1.0.2 イベント処理(マウス) ============= public boolean mouseDown(Event e,int x,int y){ //! マウスを押した時の処理 doX=x; //!(a) マウスのボタンを押したx位置 doY=y; //!(a) マウスのボタンを押したy位置 return true; //! } //end mouseDown //! public boolean mouseDrag(Event e,int x,int y){ //!ドラッグした時の処理 angX=angX+y-doY; //!(b) xの回転角度 angY=angY+x-doX; //!(b) yの回転角度 doX=x; doY=y; //! マウスの位置 repaint(); //! return true; //! } //end mouseDrag //! //================= グラフィックスの表示 ================ public void paint(Graphics g) { for (int i=0; i