public void dibujaBezierD(int x[], int y[], int n, Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        double dt = 1.0 / n;
        double A,B,C,D;
        double t=0,t2,t3;
        int dx[] = new int[n+1];
        int dy[] = new int[n+1];
        for (int i = 0; i <= n; i++) {
            t3 = t * t * t;
            t2 = t * t;
            A = -t3 + 3 * t2 - 3 * t + 1;
            B = 3 * t3 - 6 * t2 + 3 * t;
            C = -3 * t3 + 3 * t2;
            D = t3;
            dx[i] = (int)(A * x[0] + B * x[1] + C * x[2] + D * x[3]);
            dy[i] = (int)(A * y[0] + B * y[1] + C * y[2] + D * y[3]);
            t+=dt;
        }
        g2.setStroke(new BasicStroke(15));
        for (int i = 0; i < n; i++) {
            g2.drawLine(dx[i], dy[i], dx[i + 1], dy[i + 1]);
        }
    }
