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