- Home ›
- Java2Dによる画像処理 ›
- QuadCurve2Dクラス ›
- HERE
設定値を取得する
QuadCurve2D.Doubleクラスで始点や終点、そして制御点の値を取得するにはメソッドを使って取得する方法とフィールドの値を参照する方法があります。まずはメソッドで取得する方法を確認します。
まず始点座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getX1」メソッドと「getY1」メソッドを使います。
getX1メソッド:
getX1 public double getX1()
始点の X 座標を double 精度で返します。 戻り値: 始点の X 座標
getY1メソッド:
getY1 public double getY1()
始点の Y 座標を double 精度で返します。 戻り値: 始点の Y 座標
「getX1」メソッドは戻り値としてオブジェクトに保存されている始点座標のX座標を表すdouble型の値を取得できます。「getY1」メソッドは戻り値としてオブジェクトに保存されている始点座標のY座標を表すdouble型の値を取得できます。
次に終点座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getX2」メソッドと「getY2」メソッドを使います。
getX2メソッド:
getX2 public double getX2()
終点の X 座標を double 精度で返します。 戻り値: 終点の x 座標
getY2メソッド:
getY2 public double getY2()
終点の Y 座標を double 精度で返します。 戻り値: 終点の Y 座標
「getX2」メソッドは戻り値としてオブジェクトに保存されている終点座標のX座標を表すdouble型の値を取得できます。「getY2」メソッドは戻り値としてオブジェクトに保存されている終点座標のY座標を表すdouble型の値を取得できます。
最後に制御点の座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getCtrlX」メソッドと「getCtrlY」メソッドを使います。
getCtrlXメソッド:
getCtrlX public double getCtrlX()
制御点の X 座標を double 精度で返します。 戻り値: 制御点の X 座標
getCtrlYメソッド:
getCtrlY public double getCtrlY()
制御点の Y 座標を double 精度で返します。 戻り値: 制御点の Y 座標
「getCtrlX」メソッドは戻り値としてオブジェクトに保存されている制限点のX座標を表すdouble型の値を取得できます。「getCtrlY」メソッドは戻り値としてオブジェクトに保存されている制御点の座標のY座標を表すdouble型の値を取得できます。
具体的には次のように記述します。
QuadCurve2D.Double curve = new QuadCurve2D.Double(20.0d, 20.0d, 20.0d, 160.0d, 150.0d, 100.0d); double x1 = curve.getX1(); double y1 = curve.getY1(); double x2 = curve.getX2(); double y2 = curve.getY2(); double ctrlx = curve.getCtrlX(); double ctrly = curve.getCtrlY();
フィールドを参照する
QuadCurve2D.Doubleではフィールドとして「x1」「y1」「ctrlx」「ctrly」「x2」「y2」と言う6つのdouble型の値を保持するフィールドを持っておりオブジェクトから直接参照することが出来ます。
具体的には次のように記述します。
QuadCurve2D.Double curve = new QuadCurve2D.Double(20.0d, 20.0d, 20.0d, 160.0d, 150.0d, 100.0d); double x1 = curve.x1; double y1 = curve.y1; double x2 = curve.x2; double y2 = curve.y2; double ctrlx = curve.ctrlx; double ctrly = curve.ctrly;
サンプルプログラム
簡単なサンプルを一度試してみます。
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; public class QuadCurve2DTest2 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); QuadCurve2DTest2 app = new QuadCurve2DTest2(); 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); QuadCurve2D.Double curve = new QuadCurve2D.Double(); curve.setCurve(60.0d, 40.0d, 220.0d, 30.0d, 120.0d, 140.0d); g2.draw(curve); double x1 = curve.getX1(); double y1 = curve.getY1(); double x2 = curve.getX2(); double y2 = curve.getY2(); double ctrlx = curve.getCtrlX(); double ctrly = curve.getCtrlY(); g2.draw(new Ellipse2D.Double(x1 - 5.0d, y1 - 5.d, 10.d, 10.0d)); g2.draw(new Ellipse2D.Double(x2 - 5.0d, y2 - 5.d, 10.d, 10.0d)); g2.draw(new Ellipse2D.Double(ctrlx - 5.0d, ctrly - 5.d, 10.d, 10.0d)); } }
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )