- Home ›
- Java2Dによる画像処理 ›
- Polygonクラス ›
- HERE
位置を移動する
広告
作成された多角形を指定した分だけ移動させる方法を確認します。Polygonクラスで用意されている「translate」メソッドを使います。
translate public void translate(int deltaX, int deltaY)
Polygon の頂点を x 軸に沿って deltaX、および y 軸に沿って deltaY 移動 します。 パラメータ: deltaX - X 軸に沿って移動する距離 deltaY - Y 軸に沿って移動する距離
1番目の引数にX軸方向に移動する距離をint型の値で指定します。2番目の引数にY軸方法に移動する距離を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.translate(10, 20);
サンプルプログラム
簡単なサンプルを一度試してみます。
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 PolygonTest3 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); PolygonTest3 app = new PolygonTest3(); 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.translate(30, 20); g2.setPaint(Color.PINK); g2.draw(polygon); } }
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )