Я сделал рисунок, используя объекты Ellipses и Path.2D. но как мне изменить размер всего чертежа вместе со всеми другими фигурами внутри фигуры. Я сделал счастливое лицо, используя круг, но как мне изменить размер всего счастливого лица вместе с другими частями внутри круга, такими как глаза, рот и нос.
Я использовал метод .scaling (), но он отодвигает мой рисунок от центра. я хочу изменить размер чертежа, но не перемещая его от центра
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Path2D;
import java.nio.file.Path;
publi c class Circle {
private int x;
private int y;
private double size;
private Color c;
private int d,s=1;
public Circle(int x ,int y, double s,Color color){
this.x = x;
this.y = y;
c = color;
size = s;
}
public void draw(Graphics2D g2d){
g2d.scale(s,s);
g2d.rotate(d,320,255);
Ellipse2D.Double circle = new Ellipse2D.Double(x,y,size,size);
g2d.setColor(c);
g2d.fill(circle);
Ellipse2D.Double eye = new Ellipse2D.Double(220,200,60,60);
g2d.setColor(Color.WHITE);
g2d.fill(eye);
Ellipse2D.Double eye2 = new Ellipse2D.Double(330,150,90,90);
g2d.setColor(Color.WHITE);
g2d.fill(eye2);
Ellipse2D.Double eyeball = new Ellipse2D.Double(240,225,23,23);
g2d.setColor(Color.BLACK);
g2d.fill(eyeball);
Ellipse2D.Double eyeball2 = new Ellipse2D.Double(340,163,35,35);
g2d.setColor(Color.BLACK);
g2d.fill(eyeball2);
Path2D.Double mouth = new Path2D.Double();
mouth.moveTo(220,320);
mouth.curveTo(253.33,390,386.66,390,420,320);
g2d.setColor(new Color(101,67,33));
mouth.closePath();
g2d.fill(mouth);
Path2D.Double teeth = new Path2D.Double();
teeth.moveTo(220,320);
teeth.curveTo(253.33,350,386.66,350,420,320);
g2d.setColor(Color.WHITE);
g2d.fill(teeth);
Path2D.Double tongue = new Path2D.Double();
tongue.moveTo(270,350);
tongue.curveTo(270,450,354,450,354,350);
g2d.setColor(Color.RED);
g2d.fill(tongue);
Path2D.Double nose = new Path2D.Double();
nose.moveTo(320,255);
nose.curveTo(420,232,420,286,320,272);
g2d.setColor(new Color(253,165,15));
g2d.fill(nose);
Path2D.Double crown = new Path2D.Double();
crown.moveTo(210,130);
crown.lineTo(420,130);
crown.lineTo(480,50);
crown.lineTo(400,100);
crown.lineTo(315,50);
crown.lineTo(240,100);
crown.lineTo(160,50);
crown.closePath();
g2d.setColor(new Color(255,244,163));
g2d.fill(crown);
Ellipse2D.Double ball = new Ellipse2D.Double(160,45,30,30);
g2d.setColor(new Color(254,220,86));
g2d.fill(ball);
Ellipse2D.Double ball2 = new Ellipse2D.Double(455,45,30,30);
g2d.setColor(new Color(254,220,86));
g2d.fill(ball2);
Ellipse2D.Double ball3 = new Ellipse2D.Double(300,30,30,30);
g2d.setColor(new Color(254,220,86));
g2d.fill(ball3);
}