- Home ›
- Java2Dによる画像処理 ›
- 基本図形の描画 ›
- HERE
2次元ベジエ曲線を描画する(QuadCurve2Dクラス)
広告
2次元ベジエ曲線を描画する場合はQuadCurve2Dクラスのオブジェクトを使用します。QuadCurve2Dクラスはabstractクラスですので実際にはQuadCurve2D.Doubleクラス又はQuadCurve2D.Floatクラスを使用します。
※QuadCurve2Dクラスの詳しい使い方については『QuadCurve2Dクラス』を参照して下さい。
QuadCurve2Dクラスは始点、終点、制御点を設定し2次元ベジエ曲線を作成します。コンストラクタの1つは次の通りです。
QuadCurve2D.curve ellipse = new QuadCurve2D.Double(始点x座標,
始点y座標,
制御点x座標,
制御点y座標,
終点x座標,
終点y座標);
具体的には次のように記述します。
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g;
QuadCurve2D.Double curve1 =
new QuadCurve2D.Double(60.0d, 20.0d, 40.0d, 140.0d, 220.0d, 120.0d);
g2.draw(curve1);
QuadCurve2D.Double curve2 =
new QuadCurve2D.Double(60.0d, 40.0d, 220.0d, 30.0d, 120.0d, 140.0d);
g2.fill(curve2);
}
サンプルプログラム
簡単なサンプルを一度試してみます。
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;
public class ShapeTest6 extends JPanel{
public static void main(String[] args){
JFrame frame = new JFrame();
ShapeTest6 app = new ShapeTest6();
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);
QuadCurve2D.Double curve1 =
new QuadCurve2D.Double(60.0d, 20.0d, 40.0d, 140.0d, 220.0d, 120.0d);
g2.draw(curve1);
BasicStroke normalStroke = new BasicStroke(1.0f);
g2.setStroke(normalStroke);
g2.setPaint(Color.PINK);
QuadCurve2D.Double curve2 =
new QuadCurve2D.Double(80.0d, 60.0d, 250.0d, 50.0d, 150.0d, 160.0d);
g2.fill(curve2);
}
}
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )
JavaDrive