// 立方体(法線ベクトルによる隠面消去) [Gr3d4.java] import java.awt.*; public class Gr3d4 extends Gr3d1m { // Gr3d1mを継承 //========== 多角形を描く(法線ベクトルによる隠面消去) ========== public void drawPG(Graphics g,double []x,double []y, double []z,int xp,int yp,Color co) { double x1,y1,z0; int len=x.length; // 配列の大きさ double [] xw=new double[len]; //(*) double [] yw=new double[len]; //(*) int [] xx=new int [len]; int [] yy=new int [len]; final double RAD=Math.PI/180.0; // ラジアンに変換 double a=angX*RAD; // x軸の回転角 double b=angY*RAD; // y軸の回転角 double sinA=Math.sin(a),sinB=Math.sin(b); // 関数の計算 double cosA=Math.cos(a),cosB=Math.cos(b); // 関数の計算 for (int i=0; i 0) { //(*b) 法線ベクトルのz成分が正の場合 g.setColor(co); g.fillPolygon(xx,yy,len); // g.drawPolygon(xx,yy,len); //(*c) 多角形 ワイヤフレーム } } //end drawPG //======== 法線ベクトルを求める(z成分を計算する) ======== (*) double Hvec(double []x,double []y) { return(x[0]*(y[1]-y[2])+x[1]*(y[2]-y[0])+x[2]*(y[0]-y[1])); } //end Hvec } //end Gr3d4