// 家の回転(マウスで回転) [Gr3d3.java] 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 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 //================= グラフィックスの表示 ================ public void paint(Graphics g) { for (int i=0; i