- Home ›
- Java2Dによる画像処理 ›
- Rectangle2Dクラス ›
- HERE
2つのオブジェクトを含むRectangle2Dオブジェクトを作成する
広告
Rectangle2D.Doubleクラスのオブジェクトが2つあった場合に、両方のオブジェクトが含まれるような最小のRectangle2D.Doubleクラスのオブジェクトを取得する方法を確認します。
Rectangle2D.Doubleクラスで用意されている「createUnion」メソッドを使います。
createUnion public Rectangle2D createUnion(Rectangle2D r)
この Rectangle2D と指定された Rectangle2D の和集合を表す新しい Rectangle2D オブジェクトを返します。 パラメータ: r - この Rectangle と結合される Rectangle2D 戻り値: 指定された Rectangle2D と この Rectangle2D の両方を含む 最小の Rectangle2D
1番目の引数に指定したRectangle2Dクラスのオブジェクトと、このメソッドを実行するRectangle2Dクラスのオブジェクトの両方が含まれるような新しいRectangle2Dクラスのオブジェクトを戻り値として取得します。
具体的には次のように記述します。
Rectangle2D.Double rec1 = new Rectangle2D.Double(10.0d, 10.0d, 12.0d, 8.0d); Rectangle2D.Double rec2 = new Rectangle2D.Double(15.0d, 12.0d, 20.0d, 7.0d); Rectangle2D.Double recNew = (Rectangle2D.Double)rec2.createUnion(rec1);
サンプルプログラム
簡単なサンプルを一度試してみます。
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; public class Rectangle2DTest3 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); Rectangle2DTest3 app = new Rectangle2DTest3(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D)g; Rectangle2D.Double rec1 = new Rectangle2D.Double(10.0d, 10.0d, 120.0d, 80.0d); Rectangle2D.Double rec2 = new Rectangle2D.Double(50.0d, 40.0d, 180.0d, 70.0d); Rectangle2D.Double recNew = (Rectangle2D.Double)rec2.createUnion(rec1); g2.setPaint(Color.PINK); g2.fill(recNew); g2.draw(recNew); g2.setPaint(Color.BLUE); g2.draw(rec1); g2.draw(rec2); } }
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )