微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们如何在 Java awt 中合并形状?

如何解决我们如何在 Java awt 中合并形状?

我正在尝试将两个形状合并为一个对象,该对象可用于使用 Graphics2D 在窗口上绘制合并的形状。例如,2 个圆角矩形,其中一个圆角矩形旋转 90 度合并为一个形状。我搜索了 SO 以寻找可能的解决方案,但他们都在谈论使用顶点从 2 个或更多形状创建形状的算法(我不能真正将它们与 Graphics 2D 库一起使用),我也尝试使用谷歌搜索它,这只是给JavaFX 中的解决方案,这不是我正在使用的。我自己也尝试过一些代码,但它仍然使用两个形状对象。 这是我尝试过的:


import javax.swing.*;
import java.awt.*;

public class Red extends JPanel {
    public Red(Color c,int width,int height){
        this.setBackground(c);
        this.setSize(width,height);
    }

    @Override
    public void paint(Graphics g) {
        Graphics2D gtd = (Graphics2D) g;
        gtd.setColor(Color.red);
        gtd.fillRoundRect(500,500,50,15,3,3);
        gtd.rotate(Math.toradians(90),525,500 + 15/2 );
        gtd.fillRoundRect(500,3);
    }
}

我想合并:


        gtd.fillRoundRect(500,3);

变成一个可以用作普通矩形对象并绘制的形状,例如:

MergedShape X = new MergedShape(x,y,width,height)
gtd.draw(X);

最后, 简而言之:我们如何将 2 个形状合并为一个,也可以使用 Graphics2D 方法将其用作普通形状?

提前致谢!

解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。