Comportamento inesperado ao desenhar polígono

Segue meu método paintComponent de uma classe que fiz estendendo um JPanel

[code]
protected void paintComponent(Graphics g)
{
super.paintComponent(g);

    Graphics2D g2 = (Graphics2D) g;
    
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

    int x = 50;
    int y = 70;
    int offset = 100;

    // draw GeneralPath (polygon)
    int xPoints[] = { x, x, x+offset,x+offset };
    int yPoints[] = { y, y+offset, y+offset, y };

    //---Define o quadrado
    GeneralPath polygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD,xPoints.length);

    polygon.moveTo(xPoints[0], yPoints[0]);

    polygon.moveTo(xPoints[0], yPoints[0]);
    for (int index = 1; index < xPoints.length; index++)
    {
      polygon.lineTo(xPoints[index], yPoints[index]);
    }
    polygon.closePath();
    //---Fim da definição do quadrado

    //----Descreve a curva que quero adicionar ao polígono
    QuadCurve2D.Double curva = new QuadCurve2D.Double();
    curva.setCurve(xPoints[3], yPoints[3],
                   (x+(1.5*offset)), y+(offset/2),
                   xPoints[2], xPoints[2]);


    polygon.append(curva, true);
    //polygon.closePath();
    //---Fim da descrição da curva
    
    g2.setPaint(Color.black);
    g2.draw(polygon);
    //g2.fill(polygon);

    g2.setPaint(Color.red);
    g2.fillOval(xPoints[2],yPoints[2], 10, 10);
    g2.fillOval(xPoints[3],yPoints[3],10, 10);
    g2.setPaint(Color.blue);
    g2.fillOval((int)(x+(1.5*offset)), y+(offset/2), 10, 10);
}[/code]

Neste método, eu começo definindo 4 pontos que descrevem um quadrado. Uso um GeneralPath e, através de sucessivas chamadas ao método lineTo, passando cada um dos pontos, eu faço o quadrado. Se eu terminasse o método aqui, o resultado seria um quadrado.

Mas logo abaixo eu descrevo uma curva, em função dos dois pontos mais è direita (que definem a aresta direita do quadrado) e um terceiro ponto que define a curvatura da curva (?). Em seguida eu adiciono esta curva ao meu polígono.

Eu estava esperando como resultado um polígono que é uma espécie de quadrado com uma curvatura na aresta da direita, no entanto, não é isso que ocorre. Duas coisas me intrigam:
1-Não sei se esta é a maneira correta de fazer este polígono composto que eu queria.
2-A curva não está passando pelos dois pontos do extremo direito do quadrado (em vermelho, para queme executar).

Alguém pode me dar uma mão nisso?

Ninguém sabe nada a respeito?