首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java awt中合并形状?

如何在Java awt中合并形状?
EN

Stack Overflow用户
提问于 2021-06-05 04:13:05
回答 1查看 92关注 0票数 0

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

代码语言:javascript
运行
复制
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,500,50,15, 3, 3);
    }
}

我想合并:

代码语言:javascript
运行
复制
        gtd.fillRoundRect(500,500,50,15, 3, 3);
        gtd.rotate(Math.toRadians(90),525,500 + 15/2 );
        gtd.fillRoundRect(500,500,50,15, 3, 3);

转换为一个可用作普通矩形对象的形状,并绘制如下:

代码语言:javascript
运行
复制
MergedShape X = new MergedShape(x,y, width, height)
gtd.draw(X);

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

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-05 06:00:40

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67843455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档