当前位置: 首页 > 知识库问答 >
问题:

如何在Java awt中合并形状?

张玺
2023-03-14

我正在尝试将两个形状合并到一个对象中,该对象可用于在带有Graphics2D的窗口上绘制合并的形状。例如,2个圆形矩形,其中一个旋转90度的圆形矩形合并为一个形状。我搜索了可能的解决方案,但他们都在谈论使用顶点从2个或更多形状中创建形状的算法(我真的不能将它们与图形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,500,50,15, 3, 3);
    }
}

我要合并:


        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);

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

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

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

提前感谢!

共有1个答案

姚骁
2023-03-14

您正在寻找的是AWT java。awt。几何。区域 类别。https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/Area.html

 类似资料:
  • 问题内容: 我有一个带有4列的(example-)数据框: 我现在想将B,C和D列合并/合并到新的E列,如本例所示: 我在这里发现了一个非常类似的问题,但这在A列的末尾添加了合并的列B,C和D: 感谢帮助。 问题答案: 选项1 使用和 选项2 使用分配和 选项3 最近,我喜欢第3个选项。 使用

  • 问题内容: 如何在JGit中合并? 假设我要与分支合并,该怎么做? 问题答案: 要合并,您可以在之后使用(在org.eclipse.jgit.api包中)。为了给您提供示例,因为Jgit确实缺少示例: 我没有尝试该代码,因此它可能并不完美,但这只是一个开始。而且我没有包括进口。使用JGit开发意味着基于Javadoc的许多尝试

  • 我试图在GeoPandas中找到两个多边形的并集,并输出一个包含两个多边形的点作为其顶点的单个几何体。函数为每个单独的并集提供多边形,但我想要一个多边形。 在上下文中,我使用它将两个行政区域合并为一个区域(即包括一个国家内的一个城镇区)。 下面的例子来自geopandas网站,说明了我想要的: 没有一个输出几何是我所期望的,这是以下内容: 首先,如何使用GeoPandas或shapely从输入多边

  • 问题内容: 我有3个文本字段,其中用户键入表名和2个需要合并的列名。 如何将2列值合并(合并)为1? 我使用oracle 11g企业版 问题答案: 串联?

  • 我的python3脚本创建了变量,其值是一个shapefiles列表,每个shapefiles都是一个多边形,表示一个地理区域 但它给出的结果是:AttributeError:“Shape”对象没有属性“union” 我看到了另一种方法,它涉及创建一个shapefilewriter对象,然后依次覆盖列表https://gis.stackexchange.com/questions/103033/u

  • 问题内容: 我尝试使用GIT,但是对我来说最大的问题是没有用于合并的工具。至少msysgit没有给我任何东西。如何在GIT中合并?是否有出色的工具,还是必须使用WinMerge或类似的应用程序? 我使用Java和Eclipse。 问题答案: 我建议kdiff3。安装它并放入类似的内容: 在你的 要编辑全局配置(.gitconfig): 您机器上的安装路径可能与有所不同。将上面的字符串替换为kdif