- Home ›
- Java2Dによる画像処理 ›
- Polygonクラス ›
- HERE
頂点を追加する
広告
コンストラクタで作成された多角形に対して新しい頂点を追加する方法を確認します。Polygonクラスで用意されている「addPoint」メソッドを使います。
addPoint public void addPoint(int x, int y)
この Polygon に指定された座標を追加します。 この Polygon のバウンディングボックスを計算する getBounds または contains などの演算がすでに実行されている場合、このメソッドはバウンディ ングボックスを更新します。 パラメータ: x - 指定された X 座標 y - 指定された Y 座標
新しい頂点の座標を1番目の引数と2番目の引数でint型の値として指定します。
具体的には次のように記述します。
int[] xpoints = {30, 150, 170, 120, 30}; int[] ypoints = {20, 40, 140, 110, 80}; int npoints = xpoints.length; Polygon polygon = new Polygon(xpoints, ypoints, npoints); polygon.addPoint(40, 50);
サンプルプログラム
簡単なサンプルを一度試してみます。
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Polygon; import java.awt.Color; public class PolygonTest2 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); PolygonTest2 app = new PolygonTest2(); 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; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); int[] xpoints = {60, 180, 200, 130, 60}; int[] ypoints = {20, 40, 120, 140, 110}; int npoints = xpoints.length; Polygon polygon = new Polygon(xpoints, ypoints, npoints); g2.draw(polygon); polygon.addPoint(40, 70); g2.setPaint(Color.PINK); g2.draw(polygon); } }
上記をコンパイルした後で実行すると次のように表示されます。
今回のサンプルでは一度描画した多角形に新しい頂点を加えた後に色を変えて再度多角形を描画しています。
( Written by Tatsuo Ikura )