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