Java API中是否有任何内置方法可以调整多边形的大小?
编写我自己的方法是否是一项非常简单的任务,还是已经有其他方法?
答案 0 :(得分:2)
不,内置任何内容,但是,当您绘制多边形时,可以使用应用的变换矩阵绘制多边形,该矩阵可以为您缩放多边形。 (或旋转,歪斜等)。
见
Graphics2D.setTransform(变换);
让我们假设你在JPanel中绘制多边形,并且已经覆盖了JPanel的paintComponent方法。将Graphics对象转换为Graphics2D对象,并使用转换根据需要进行缩放:
public void paintComponent(Graphic g) {
Graphics2D g2d = (Graphics2D) g;
AffineTransform saveTransform = g2d.getTransform();
try {
AffineTransform scaleMatrix = new AffineTransform();
scaleMatrix.scale(1.5, 1.5);
//or whatever you want
g2d.setTransform(scaleMatrix);
g2d.drawPolygon(myPolygon);
} finally {
g2d.setTransform(saveTransform);
}
}
您可以在其他地方(一次)设置转换矩阵,而不是每次在paintComponent方法中设置转换矩阵,但我在这里做了如何设置它。
另请注意,这将移动多边形,您可能希望将其应用于变换:
答案 1 :(得分:0)
是的,AffineTransform.createTransformedShape(Shape)
会创建任意Shape
的转化副本(可能是Polygon
或Path2D
。)