我们如何合并 Java awt 中的形状?
How can we merge shapes in Java awt?
我正在尝试将两个形状合并为一个对象,该对象可用于在 window 上绘制合并后的形状 Graphics2D.for 示例 2 个圆角矩形,其中一个圆角矩形旋转了 90 度合并为一个形状。我搜索了可能的解决方案,但他们都在谈论使用顶点从 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,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);
最后,
简而言之:我们如何将 2 个形状合并为一个,也可以通过 Graphics2D 方法用作普通形状?
提前致谢!
您正在寻找的是 AWT java.awt.geom.Area
class。 https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/Area.html
我正在尝试将两个形状合并为一个对象,该对象可用于在 window 上绘制合并后的形状 Graphics2D.for 示例 2 个圆角矩形,其中一个圆角矩形旋转了 90 度合并为一个形状。我搜索了可能的解决方案,但他们都在谈论使用顶点从 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,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);
最后, 简而言之:我们如何将 2 个形状合并为一个,也可以通过 Graphics2D 方法用作普通形状?
提前致谢!
您正在寻找的是 AWT java.awt.geom.Area
class。 https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/Area.html