/ / ellipse2d um Mausklick java [geschlossen] - java, awt, draw, java-2d, affinetransform

ellipse2d um Mausklick java [geschlossen] zeichnen - java, awt, draw, java-2d, affinetransform

Ich mache ein Programm, das wann Ellipsen zeichnetDer Benutzer klickt auf den Bildschirm. Wenn die Ellipse gezeichnet wird, ist der Ursprung (0,0), also wird sie von rechts oben gezeichnet. Ich möchte, dass es um den Mausklick gezeichnet wird, also in der Mitte genau dort, wo der Benutzer klickt, aber ich bin mir nicht sicher, wie er das tun soll.

    public void DrawSprite( Graphics2D g2 )
{
AffineTransform tOldTransform = g2.getTransform();
g2.setColor(SetSpriteColor());
g2.translate(mX, mY);
g2.rotate(mRotation*(Math.PI/180));
g2.draw(new Ellipse2D.Double(0, 0, mWidth, mHeight));
g2.setTransform(tOldTransform);
}

Antworten:

2 für die Antwort № 1

g2.translate (mX, mY);

Ich schätze, dass mX und mY der Punkt ist, an dem die Maus angeklickt wurde. Sie können also nicht genau diesen Punkt der Übersetzung verwenden. Vielleicht so etwas wie:

g2.translate(mX - (mWidth / 2), mY - (mHeight / 2));