//凹みのある箱(Zバッファで隠面除去) [Gr3d6a.java] //% Gr3d6.javaをコピー //% Box4 bx = new Box4(); import java.applet.Applet; import java.awt.*; import java.awt.event.*; // JDK 1.1 public class Gr3d6a extends Applet implements AdjustmentListener { // JDK 1.1 Scrollbar scrX,scrY; // Scrollbar //Box3 bx = new Box3(); Box4 bx = new Box4(); Color [] Col={Color.gray,Color.cyan,Color.green, Color.red,Color.white,Color.orange, Color.magenta,Color.blue}; float [][]ZB; // Zバッファ Image doubleBuf; // ダブルバッファ int bufLen=350; // バッファの大きさ Graphics gg; public void init() { // ロード時の初期化メソッド doubleBuf=createImage(bufLen,bufLen); gg=doubleBuf.getGraphics(); // Graphicsオブジェクトの代入 ZB=new float[bufLen][bufLen]; // Zバッファの作成 setLayout(new BorderLayout()); Panel p=new Panel(); p.setLayout(new GridLayout(2,2,0,5)); // 行,列,hgap,vgap scrX= new Scrollbar(Scrollbar.HORIZONTAL,30,20,-180,190); scrY= new Scrollbar(Scrollbar.HORIZONTAL,30,20,-180,190); p.add(scrX); // X軸方向の回転 p.add(new Label(" X-Rotation (-180 .. +180)")); p.add(scrY); // Y軸方向の回転 p.add(new Label(" Y-Rotation (-180 .. +180)")); add(p,"South"); scrX.addAdjustmentListener(this); // JDK 1.1 scrY.addAdjustmentListener(this); // JDK 1.1 setBackground(new Color(128,128,255)); // 背景色 } //end init //========= JDK 1.1 イベント処理(スクロールバー) ========= public void adjustmentValueChanged(AdjustmentEvent e) { repaint(); } //end adjustmentValueChanged //================= グラフィックスの表示 ================= public void paint(Graphics g) { for (int i=0; i