缩放:如何将图形调整为居中大小

我已经使用Ellipses和Path.2D对象绘制了图形。但是如何调整整个图形以及图形中所有其他形状的大小。我使用圆圈制作了一张幸福的脸,但是如何调整整个幸福的脸以及圆圈中其他部分(例如眼睛,嘴巴和鼻子)的大小。

我使用了.scaling()方法,但是它使我的绘图远离中心。我想调整绘图大小,但又不想将其从中心移开

 import java.awt.*;
 import java.awt.geom.Ellipse2D;
 import java.awt.geom.Path2D;
 import java.nio.file.Path;

公共类圈子{

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,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,320);
    g2d.setColor(Color.WHITE);
    g2d.fill(teeth);

    Path2D.Double tongue = new Path2D.Double();
    tongue.moveTo(270,350);
    tongue.curveTo(270,450,354,350);
    g2d.setColor(Color.RED);
    g2d.fill(tongue);

    Path2D.Double nose = new Path2D.Double();
    nose.moveTo(320,255);
    nose.curveTo(420,232,286,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,86));
    g2d.fill(ball2);

    Ellipse2D.Double ball3 = new Ellipse2D.Double(300,86));
    g2d.fill(ball3);


}
kingjohy 回答:缩放:如何将图形调整为居中大小

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2670532.html

大家都在问