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