// 直方体を xy-平面上に描く
// 平行移動メソッド graphics.Parallel を適用

import java.applet.Applet;
import java.awt.*;

public class cuboid2 extends Applet {
    public void paint(Graphics g) {
        final double RADIAN = Math.PI/180.0;
        double scale = 5.0;  // 大きさ
        double theta = 30;   // 回転角度
        int a = 30;          // 大きさ a×b×c の直方体
        int b = 40;
        int c = 50;
        int A = 50;          // 平行移動距離(x 軸方向)
        int B = 50;          // 平行移動距離(y 軸方向)
        int C = 50;          // 平行移動距離(z 軸方向)

        _xyz lmn = new _xyz();
        lmn.x = A; lmn.y = B; lmn.z = C;

        // 座標軸を描く
        graphics.SetColor(g,0x000000);
        graphics.DrawLine(g,-200,0,200,0);
        graphics.DrawLine(g,0,-200,0,200);

        // 稜を描く
        graphics.SetColor(g,0x0000ff00);
        // 下底
        draw_line(g,a,0,a,0,lmn);
        draw_line(g,0,0,a,0,lmn);
        draw_line(g,0,0,0,0,lmn);
        draw_line(g,0,0,a,0,lmn);
        //上底
        draw_line(g,a,b,a,b,lmn);
        draw_line(g,0,b,a,b,lmn);
        draw_line(g,0,b,0,b,lmn);
        draw_line(g,0,b,a,b,lmn);
        //右側面
        draw_line(g,a,0,a,b,lmn);
        draw_line(g,0,0,0,b,lmn);
        //左側面
        draw_line(g,a,0,a,b,lmn);
        draw_line(g,0,0,0,b,lmn);
    }


    void draw_line(Graphics g, int x1, int y1, int x2, int y2, _xyz lmn) {
    // 点 (x1,y1) と (x2,y2) を lmn だけ平行移動して, この2点間の線分を描く
        _xyz xyz = new _xyz();

        xyz.x = x1; xyz.y = y1; xyz.z = 0;
        x1 = (int)graphics.Parallel(xyz,lmn).x;
        y1 = (int)graphics.Parallel(xyz,lmn).y;
        xyz.x = x2; xyz.y = y2; xyz.z = 0;
        x2 = (int)graphics.Parallel(xyz,lmn).x;
        y2 = (int)graphics.Parallel(xyz,lmn).y;
        graphics.DrawLine(g,x1,y1,x2,y2);
    }
}