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