- Home ›
- Java2Dによる画像処理 ›
- 基本図形の描画 ›
- HERE
多角形を描画する(Polygonクラス)
広告
多角形をを描画する場合はPolygonクラスのオブジェクトを使用します。
※Polygonクラスの詳しい使い方については『Polygonクラス』を参照して下さい。
Polygonクラスは指定した頂点の数からなる多角形を作成します。コンストラクタの1つは次の通りです。
Polygon polygon = new Polygon(頂点のx座標の配列, 頂点のy座標の配列, 頂点数);
具体的には次のように記述します。
public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D)g; int[] xpoints1 = {80, 30, 170}; int[] ypoints1 = {20, 120, 190}; Polygon polygon1 = new Polygon(xpoints1, ypoints1, xpoints1.length); g2.draw(polygon1); int[] xpoints2 = {30, 150, 170, 120, 30}; int[] ypoints2 = {20, 40, 140, 110, 80}; Polygon polygon2 = new Polygon(xpoints2, ypoints2, xpoints2.length); g2.fill(polygon2); }
サンプルプログラム
簡単なサンプルを一度試してみます。
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; import java.awt.BasicStroke; import java.awt.Polygon; public class ShapeTest8 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); ShapeTest8 app = new ShapeTest8(); 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); BasicStroke wideStroke = new BasicStroke(4.0f); g2.setStroke(wideStroke); int[] xpoints1 = {140, 50, 230}; int[] ypoints1 = {20, 150, 100}; Polygon polygon1 = new Polygon(xpoints1, ypoints1, xpoints1.length); g2.draw(polygon1); BasicStroke normalStroke = new BasicStroke(1.0f); g2.setStroke(normalStroke); g2.setPaint(Color.PINK); int[] xpoints2 = {30, 150, 200, 90, 30}; int[] ypoints2 = {20, 40, 140, 130, 80}; Polygon polygon2 = new Polygon(xpoints2, ypoints2, xpoints2.length); g2.fill(polygon2); } }
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )