なぜかどんどん小さくなるコッホ曲線

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

public class Koch4 extends Applet{
    int times=1;
    Choice timesChoice;
    double xOrig=5.0;
    double yOrig=0.0;
    double length;
    
    public void init(){
        timesChoice=new Choice();
        for(int i=1;i<=10;i++){
            timesChoice.addItem(""+i);
        }
        add(timesChoice);
        add(new Label("times"));
        timesChoice.select(times-1);
        timesChoice.addItemListener(new ItemAdp());
       
    }

    class ItemAdp implements ItemListener{
        public void itemStateChanged(ItemEvent e){
            if(e.getSource()==timesChoice){
                times=timesChoice.getSelectedIndex()+1;
                repaint();
            }
        }
   }
   
    public void paint(Graphics g){
        double angle=0.0;
        xOrig=5.0;
        yOrig=0.0;
        
        int width=getSize().width;
        int height=getSize().height;
        int pointN=(int)Math.pow(4,times);
        length=(double)(width-10)/pointN;
        g.setColor(Color.lightGray);
        g.fillRect(0,0,width,height);
        g.setColor(Color.red);
        drawKoch(g,times,angle);
    }
    
    public void drawKoch(Graphics g,int n,double angle){
        double x,y,angleR;
        
        if(n<=0){
            angleR=Math.PI/180*angle;
            x=length*Math.cos(angleR)+xOrig;
            y=length*Math.sin(angleR)+yOrig;
            g.drawLine((int)xOrig,(int)(200-yOrig),(int)x,(int)(200-y));
            xOrig=x;
            yOrig=y;
            return;
        }
        drawKoch(g,n-1,angle);
        drawKoch(g,n-1,angle+90);
        drawKoch(g,n-1,angle);
        drawKoch(g,n-1,angle-90);
        drawKoch(g,n-1,angle);
    }
}