私は、図形をJavaで再スケーリングする最も簡単な方法が必要です(たとえば、長方形...)。私は、「ストレッチ」、それらをする方法を見つけた:Java(JFrame)で図面のサイズを変更してください
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.Dimension;
public class Stretch extends JFrame {
int originalHeight = 600;
int originalWidth = 600;
public Stretch() {
super("Stretch");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(originalWidth, originalHeight);
}
public static void main(String[] args) {
Stretch s = new Stretch();
s.setVisible(true);
}
public void paint(Graphics g) {
Dimension size = this.getBounds().getSize();
int rectWidth = 100;
int rectHeight = 130;
g.setColor(Color.white);
g.fillRect(0, 0, size.width, size.height);
g.setColor(Color.black);
g.drawRect(100, 100, rectWidth + size.width - originalWidth, rectHeight + size.height - originalHeight);
}
}
あなたは数式がそのようである見ることができるように:
g.drawRect(100, 100, rectWidth + size.width - originalWidth, rectHeight + size.height - originalHeight);
が今どのように私は、図面を再スケールすることができますか?幅と高さは同じ比率を維持する必要があります。 ありがとうございます。
を探している私は、描画が何であるかわからないものです。それは長方形ですか?またはより複雑な描画のプレースホルダの四角形ですか? –
とにかく、問題の長方形などのベクトルグラフィックスを拡大/縮小する場合は、比を維持したい場合は、比率を維持して目標サイズを再計算してください:まず比率を計算し、幅(または高さ)またはそれを比率で除算して、もう一方の次元を取得します。 –
最も単純な方法は、 'Rectangle'または' Rectangle2D'を使い、単純に拡大縮小された 'AffineTransform'をそれに適用することです。それ以外の場合は、プロパティまたは 'Graphics'コンテキストをスケールすることができます – MadProgrammer