隠線消去プログラム
public void paint(Graphics g) {
Int ymin[ ] = new int[width]; Int ymax[ ] = new int[width];
henkan.preper(); // 座標変換の係数セット
for(int i=0;I<width;i++){ // ymin[],ymax[]の初期化
ymin[I]=height; ymax[I]=0;}
// z,xを変化させて、y= f(z,x) を 計算
for(int z=170; z>=-170; z -= 10){
for(int x=-170; x<=170; x++){
Point3 P = FuncHat(x,z); // 関数生成 P(x,y,z)
Point q = henkan.project(P); // 透視投影 q(x,y)
Int px = x_origin + q.x ; int py = y_origin - q.y;
if( py < ymin[px] ) { ymin[px]= py;
g.drawLine(px,.py, px, py); } // 可視点の描画(下側)
if( py > ymax[px] ) { ymax[px]= py;
g.drawLine(px, py, px, py); } // 可視点の描画(上側)