|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.go.ipa.jgcl.JgclGeometry | +--jp.go.ipa.jgcl.JgclParametricCurve | +--jp.go.ipa.jgcl.JgclParametricCurve3D | +--jp.go.ipa.jgcl.JgclBoundedCurve3D | +--jp.go.ipa.jgcl.JgclFreeformCurveWithControlPoints3D | +--jp.go.ipa.jgcl.JgclBsplineCurve3D
3次元 : 非有理 (多項式) Bスプライン曲線および有理Bスプライン曲線を表すクラス。
このクラスのインスタンスは、
Bスプラインのノット列に関する情報 knotData (JgclBsplineKnot
)
を持つ。
制御点列などを保持するフィールドについては、
スーパークラスの解説
を参照。
Bスプライン曲線のパラメータ定義域は、対応するノット列によって決まる。
t をパラメータとするBスプライン曲線 P(t) のパラメトリック表現は、以下の通り。
n = 曲線の次数 m = セグメントの数 (開いた形式 : (制御点の数 - 曲線の次数), 閉じた形式 : 制御点の数) di = controlPoints[i] wi = weights[i]として、非有理Bスプライン曲線は
P(t) = (di * Nn,i(t)) の総和 (i = 0, ..., (m + n - 1))有理Bスプライン曲線は
(wi * di * Nn,i(t)) の総和 P(t) = -------------------------- (i = 0, ..., (m + n - 1)) (wi * Nn,i(t)) の総和ここで Nn,i(t) はBスプライン基底関数。 なお、閉じた形式の場合に i > (制御点の数 - 1) となる i については、 対応する制御点と重みがそれぞれ dj, wj (j = i - 制御点の数) となる。
クラス jp.go.ipa.jgcl.JgclFreeformCurveWithControlPoints3D から継承したフィールド |
controlPoints, weights |
コンストラクタの概要 | |
JgclBsplineCurve3D(int degree,
boolean periodic,
int[] knotMultiplicities,
double[] knots,
JgclPoint3D[] controlPoints)
ノット列を明示し、 制御点列を与えて多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
boolean periodic,
int[] knotMultiplicities,
double[] knots,
JgclPoint3D[] controlPoints,
double[] weights)
ノット列を明示し、 制御点列と重み列を与えて有理曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
boolean periodic,
int knotSpec,
JgclPoint3D[] controlPoints)
ノット列を明示せずに ノット列の種別と制御点列を与えて多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
boolean periodic,
int knotSpec,
JgclPoint3D[] controlPoints,
double[] weights)
ノット列を明示せずに ノット列の種別と制御点列および重み列を与えて有理曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
int[] knotMultiplicities,
double[] knots,
JgclPoint3D[] controlPoints)
ノット列を明示し、制御点列を与えて開いた形式の多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
int[] knotMultiplicities,
double[] knots,
JgclPoint3D[] controlPoints,
double[] weights)
ノット列を明示し、 制御点列と重み列を与えて開いた形式の有理曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
int knotSpec,
JgclPoint3D[] controlPoints)
ノット列を明示せずに ノット列の種別と制御点列を与えて開いた多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(int degree,
int knotSpec,
JgclPoint3D[] controlPoints,
double[] weights)
ノット列を明示せずに ノット列の種別と制御点列および重み列を与えて開いた形式の有理曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(JgclPoint3D[] points,
double[] params)
点列と、それに対応するパラメータ値の列を与えて、 その点列を補間する開いた形式の多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(JgclPoint3D[] points,
double[] params,
JgclVector3D[] endvecs)
点列と、それに対応するパラメータ値の列および両端点での接ベクトルを与えて、 その点列を補間する開いた形式の多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(JgclPoint3D[] points,
double[] params,
JgclVector3D[] endvecs,
boolean isClosed)
点列と、それに対応するパラメータ値の列、両端点での接ベクトルおよび開閉情報を与えて、 その点列を補間する多項式曲線としてオブジェクトを構築する。 |
|
JgclBsplineCurve3D(JgclPoint3D[] points,
double[] params,
JgclVector3D[] endDir,
boolean isClosed,
JgclToleranceForDistance tol,
JgclToleranceForDistance midTol)
点列と、それに対応するパラメータ値の列、両端点での接線の方向および開閉情報を与えて、 その点列を近似する多項式曲線としてオブジェクトを構築する。 |
メソッドの概要 | |
JgclPoint3D |
blossoming(int segNumber,
double[] parameters)
この曲線の、与えられたパラメータ列に対するブロッサミングの結果を返す。 |
JgclPoint3D |
controlPointAt(int n)
この曲線の n 番目の制御点を返す。 |
JgclPoint3D |
coordinates(double param)
この曲線の、与えられたパラメータ値での座標値を返す。 |
JgclCurveCurvature3D |
curvature(double param)
この曲線の、与えられたパラメータ値での曲率を返す。 |
int |
degree()
この曲線の次数を返す。 |
JgclBsplineCurve3D[] |
divide(double param)
このBスプライン曲線を、与えられたパラメータ値で分割する。 |
protected JgclParametricCurve3D |
doTransformBy(boolean reverseTransform,
JgclCartesianTransformationOperator3D transformationOperator,
java.util.Hashtable transformedGeometries)
この曲線を、与えられた幾何的変換演算子で変換する。 |
JgclBsplineCurve3D |
elevateOneDegree()
この曲線を、形状をそのままにして、次数を一つ上げた曲線を返す。 |
JgclCurveDerivative3D |
evaluation(double param)
この曲線の、与えられたパラメータ値での導関数を返す。 |
static JgclBsplineCurve3D[] |
identicalKnotSequences(JgclBsplineCurve3D[] crvs,
JgclParameterSection pint)
与えられたBスプライン曲線の列のノット列/次数/制御点の数を揃える。 |
JgclPointOnCurve3D[] |
inflexion()
この曲線の変曲点を返す。 |
JgclBsplineCurve3D |
insertKnot(double param)
この曲線の、指定のパラメータ値の位置に新たなノットを挿入した曲線を返す。 |
JgclCurveCurveInterference3D[] |
interfere(JgclBoundedCurve3D mate)
この有限曲線と他の有限曲線の干渉を求める。 |
JgclIntersectionPoint3D[] |
intersect(JgclElementarySurface3D mate)
この曲線と他の曲面 (解析曲面) の交点を求める。 |
JgclIntersectionPoint3D[] |
intersect(JgclParametricCurve3D mate)
この曲線と他の曲線の交点を求める。 |
JgclIntersectionPoint3D[] |
intersect(JgclParametricSurface3D mate)
この曲線と他の曲面の交点を求める。 |
boolean |
isPeriodic()
この曲線のパラメータ定義域が周期的か否かを返す。 |
int |
knotSpec()
この曲線のノットの種別を返す。 |
double |
knotValueAt(int n)
この曲線のノット列の n 番めのノット値を返す。 |
double |
length(JgclParameterSection pint)
与えられたパラメータ区間におけるこの曲線の実空間上での長さ (道のり) を返す。 |
JgclBsplineSurface3D |
loftSurface(JgclVector3D vector,
double length)
ロフト面の生成。 |
JgclBsplineCurve3D |
mergeIfContinuous(JgclBsplineCurve3D mate)
このBスプライン曲線と、 このBスプライン曲線の終了点に幾何的に繋がっているBスプライン曲線を 一本のBスプライン曲線にする。 |
int |
nKnotValues()
この曲線のノットの数を返す。 |
protected void |
output(java.io.PrintWriter writer,
int indent)
出力ストリームに形状情報を出力する。 |
JgclParametricCurve3D |
parallelTranslate(JgclVector3D moveVec)
この曲線を、与えられたベクトルに従って平行移動した曲線を返す。 |
JgclRealPolynomial[] |
polynomial(int iSseg,
boolean isPoly)
この曲線の指定のセグメントの多項式表現を返す。 |
JgclPointOnCurve3D[] |
projectFrom(JgclPoint3D mate)
与えられた点からこの曲線への投影点を求める。 |
JgclBsplineCurve3D |
shiftIfPeriodic(double newStartParam)
この「閉じた形式」のBスプライン曲線の形状を変えずに、 与えられたパラメータ値に対応する点を開始点とするように 変換したものを返す。 |
JgclPointOnCurve3D[] |
singular()
この曲線の特異点を返す。 |
JgclBsplineSurface3D |
tabcylSurface(JgclBsplineCurve3D mate)
タブシル面の生成。 |
JgclVector3D |
tangentVector(double param)
この曲線の、与えられたパラメータ値での接ベクトルを返す。 |
JgclBsplineCurve3D |
toBsplineCurve()
この有限曲線全体を厳密に再現する有理 Bspline 曲線を返す。 |
JgclBsplineCurve3D |
toBsplineCurve(JgclParameterSection pint)
この曲線の指定の区間を厳密に再現する有理 Bspline 曲線を返す。 |
JgclPolyline3D |
toPolyline(JgclParameterSection section,
JgclToleranceForDistance tolerance)
この曲線の指定の区間を、与えられた誤差で直線近似するポリラインを返す。 |
JgclPureBezierCurve3D[] |
toPureBezierCurveArray()
このBスプライン曲線を再現するベジエ曲線の列を返す。 |
double |
torsion(double param)
この曲線の、与えられたパラメータ値でのレイ率を返す。 |
JgclBsplineCurve3D |
truncate(JgclParameterSection section)
このBスプライン曲線を、与えられたパラメータ区間で切断する。 |
クラス jp.go.ipa.jgcl.JgclBoundedCurve3D から継承したメソッド |
endPoint, length, startPoint, toPolyline |
クラス jp.go.ipa.jgcl.JgclParametricCurve3D から継承したメソッド |
checkProjection, dimension, hasPolyline, identicalParameter, is3D, isComposedOfOnlyPolylines, nearestProjectFrom, nearestProjectWithDistanceFrom, pointToParameter, reverseTransformBy, transformBy, transformBy |
クラス jp.go.ipa.jgcl.JgclParametricCurve から継承したメソッド |
checkValidity, checkValidity, isClosed, isCurve, isFinite, isInfinite, isNonPeriodic, isOpen, isParametric, isValid, parameterDomain |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public JgclBsplineCurve3D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, JgclPoint3D[] controlPoints)
このコンストラクタは、
super
(controlPoints)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, JgclKnotType.UNSPECIFIED, periodic, knotMultiplicities, knots, nControlPoints())
を呼び出している。
degree
- 曲線の次数periodic
- 閉じた形式か否かを表すフラグknotMultiplicities
- ノット多重度の配列knots
- ノット値の配列controlPoints
- 制御点の配列public JgclBsplineCurve3D(int degree, int[] knotMultiplicities, double[] knots, JgclPoint3D[] controlPoints)
このコンストラクタは、
super
(controlPoints)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, JgclKnotType.UNSPECIFIED, false, knotMultiplicities, knots, nControlPoints())
を呼び出している。
degree
- 曲線の次数knotMultiplicities
- ノット多重度の配列knots
- ノット値の配列controlPoints
- 制御点の配列public JgclBsplineCurve3D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, JgclPoint3D[] controlPoints, double[] weights)
このコンストラクタは、
super
(controlPoints, weights)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, JgclKnotType.UNSPECIFIED, periodic, knotMultiplicities, knots, nControlPoints())
を呼び出している。
degree
- 曲線の次数periodic
- 閉じた形式か否かを表すフラグknotMultiplicities
- ノット多重度の配列knots
- ノット値の配列controlPoints
- 制御点の配列weights
- 重みの配列public JgclBsplineCurve3D(int degree, int[] knotMultiplicities, double[] knots, JgclPoint3D[] controlPoints, double[] weights)
このコンストラクタは、
super
(controlPoints, weights)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, JgclKnotType.UNSPECIFIED, false, knotMultiplicities, knots, nControlPoints())
を呼び出している。
degree
- 曲線の次数knotMultiplicities
- ノット多重度の配列knots
- ノット値の配列controlPoints
- 制御点の配列weights
- 重みの配列public JgclBsplineCurve3D(int degree, boolean periodic, int knotSpec, JgclPoint3D[] controlPoints)
いまのところ、knotSpec がとり得る値は JgclKnotType.UNIFORM_KNOTS だけである (JgclKnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} には未対応) 。
このコンストラクタは、
super
(controlPoints)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, knotSpec, periodic, null, null, nControlPoints())
を呼び出している。
degree
- 曲線の次数periodic
- 閉じた形式か否かを表すフラグknotSpec
- ノット列の種別controlPoints
- 制御点の配列public JgclBsplineCurve3D(int degree, int knotSpec, JgclPoint3D[] controlPoints)
いまのところ、knotSpec がとり得る値は JgclKnotType.UNIFORM_KNOTS だけである (JgclKnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} には未対応) 。
このコンストラクタは、
super
(controlPoints)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, knotSpec, false, null, null, nControlPoints())
を呼び出している。
degree
- 曲線の次数knotSpec
- ノット列の種別controlPoints
- 制御点の配列public JgclBsplineCurve3D(int degree, boolean periodic, int knotSpec, JgclPoint3D[] controlPoints, double[] weights)
いまのところ、knotSpec がとり得る値は JgclKnotType.UNIFORM_KNOTS だけである (JgclKnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} には未対応) 。
このコンストラクタは、
super
(controlPoints, weights)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, knotSpec, periodic, null, null, nControlPoints())
を呼び出している。
degree
- 曲線の次数periodic
- 閉じた形式か否かを表すフラグknotSpec
- ノット列の種別controlPoints
- 制御点の配列weights
- 重みの配列public JgclBsplineCurve3D(int degree, int knotSpec, JgclPoint3D[] controlPoints, double[] weights)
いまのところ、knotSpec がとり得る値は JgclKnotType.UNIFORM_KNOTS だけである (JgclKnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} には未対応) 。
このコンストラクタは、
super
(controlPoints, weights)
を呼び出している。
knotData の構築には、
new JgclBsplineKnot
(degree, knotSpec, false, null, null, nControlPoints())
を呼び出している。
degree
- 曲線の次数knotSpec
- ノット列の種別controlPoints
- 制御点の配列weights
- 重みの配列public JgclBsplineCurve3D(JgclPoint3D[] points, double[] params)
points
- 補間する点列params
- 点列内の各点におけるパラメータ値の列public JgclBsplineCurve3D(JgclPoint3D[] points, double[] params, JgclVector3D[] endvecs)
endvecs[0] で始点での接ベクトル、 endvecs[1] で終点での接ベクトルを示す。
points
- 補間する点列params
- 点列内の各点におけるパラメータ値の列endvecs
- 両端点での接ベクトルpublic JgclBsplineCurve3D(JgclPoint3D[] points, double[] params, JgclVector3D[] endvecs, boolean isClosed)
isClosed が true の場合、 (params の要素数) = (points の要素数 + 1) となっている必要がある。
endvecs[0] で始点での接ベクトル、 endvecs[1] で終点での接ベクトルを示す。 なお、isClosed が true の場合には、この配列は参照されない。
points
- 補間する点列params
- 点列内の各点におけるパラメータ値の列endvecs
- 両端点での接ベクトルisClosed
- 閉じた形式の曲線を生成するか否かのフラグpublic JgclBsplineCurve3D(JgclPoint3D[] points, double[] params, JgclVector3D[] endDir, boolean isClosed, JgclToleranceForDistance tol, JgclToleranceForDistance midTol)
isClosed が true の場合、 (params の要素数) = (points の要素数 + 1) となっている必要がある。
endDir[0] で始点での接線方向、 endDir[1] で終点での接線方向を示す。 なお、isClosed が true の場合には、この配列は参照されない。
指定された精度で近似できなかった場合には、 与えられた点列を補間する曲線を生成する。
points
- 補間する点列params
- 点列内の各点におけるパラメータ値の列endDir
- 両端点での接線の方向isClosed
- 閉じた形式の曲線を生成するか否かのフラグtol
- 各点における近似の精度midTol
- 点の中間における近似の精度メソッドの詳細 |
public int degree()
public int knotSpec()
JgclKnotType
public int nKnotValues()
ここで言う「ノットの数」とは knotData の knots フィールドに設定されたノット値の配列の長さではなく、 Bスプラインのノット列本来のノットの数である。
public double knotValueAt(int n)
ここで言う「n 番目」とは knotData の knots フィールドに設定されたノット値の配列内のインデックスではなく、 Bスプラインのノット列本来の意味でのインデックスである。
n
- インデックスpublic boolean isPeriodic()
パラメータドメインを調べる必要がないのでオーバーライドする。
JgclParametricCurve
内の isPeriodic
public JgclPoint3D controlPointAt(int n)
閉じた形式の場合はインデックスを周期的に扱う。
JgclFreeformCurveWithControlPoints3D
内の controlPointAt
n
- インデックスpublic JgclRealPolynomial[] polynomial(int iSseg, boolean isPoly)
結果として得られる配列 R の要素数は、 この曲線が非有理であれば 3、 有理であれば 4 である。
非有理曲線の場合、 R[0] は X 成分、 R[1] は Y 成分 R[2] は Z 成分 の多項式表現を表す。
有理曲線の場合、 R[0] は WX 成分、 R[1] は WY 成分 R[2] は WZ 成分 R[3] は W 成分 の多項式表現を表す。
iSseg
- セグメントの番号isPoly
- 非有理であるかどうかpublic double length(JgclParameterSection pint)
pint の増分値は負でもかまわない。
与えられたパラメータ区間がこの曲線の定義域を外れている場合には JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve
内の length
pint
- 曲線の長さを求めるパラメータ区間JgclParameterOutOfRange
public JgclPoint3D coordinates(double param)
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の coordinates
param
- パラメータ値JgclParameterOutOfRange
public JgclVector3D tangentVector(double param)
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の tangentVector
param
- パラメータ値JgclParameterOutOfRange
public JgclCurveCurvature3D curvature(double param)
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の curvature
param
- パラメータ値JgclParameterOutOfRange
public double torsion(double param)
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の torsion
param
- パラメータ値JgclParameterOutOfRange
public JgclCurveDerivative3D evaluation(double param)
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の evaluation
param
- パラメータ値JgclParameterOutOfRange
public JgclPoint3D blossoming(int segNumber, double[] parameters)
parameters の要素数は、この曲線の次数に一致している必要がある。
与えられたパラメータ値が定義域を外れている場合には、 JgclParameterOutOfRange の例外を発生する。
segNumber
- 演算対象となるセグメントの番号 (先頭は 0)parameters
- パラメータ値の配列JgclParameterOutOfRange
public JgclPointOnCurve3D[] singular()
特異点が存在しないときは長さ 0 の配列を返す。
JgclParametricCurve3D
内の singular
public JgclPointOnCurve3D[] inflexion()
変曲点が存在しないときは長さ 0 の配列を返す。
JgclParametricCurve3D
内の inflexion
public JgclBsplineCurve3D toBsplineCurve()
JgclBoundedCurve3D
内の toBsplineCurve
public JgclBsplineCurve3D toBsplineCurve(JgclParameterSection pint)
pint の値が、このBスプライン曲線の定義域を外れている場合には JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の toBsplineCurve
pint
- 有理 Bspline 曲線で再現するパラメータ区間JgclParameterOutOfRange
public JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate) throws JgclIndefiniteSolution
交点が存在しないときは長さ 0 の配列を返す。
JgclParametricCurve3D
内の intersect
mate
- 他の曲線public JgclIntersectionPoint3D[] intersect(JgclParametricSurface3D mate) throws JgclIndefiniteSolution
交点が存在しないときは長さ 0 の配列を返す。
JgclParametricCurve3D
内の intersect
mate
- 他の曲面public JgclIntersectionPoint3D[] intersect(JgclElementarySurface3D mate)
交点が存在しないときは長さ 0 の配列を返す。
mate
- 他の曲面 (解析曲面)public JgclCurveCurveInterference3D[] interfere(JgclBoundedCurve3D mate)
干渉が存在しない場合には長さ 0 の配列を返す。
JgclBoundedCurve3D
内の interfere
mate
- 他の曲線public JgclBsplineCurve3D insertKnot(double param)
形状はこの曲線のままで、セグメントが一つ増えたBスプライン曲線を返す。
param
- ノットを挿入するパラメータ値public JgclBsplineCurve3D[] divide(double param)
この曲線が開いた形式の場合には、 param に対応する点で前後二本に分割する。 結果として得られる配列の要素数は 2 で、 最初の要素に「始点から分割点までを表すBスプライン曲線 A」、 二番目の要素に「分割点から終点までを表すBスプライン曲線 B」 が入る。 この曲線のパラメータ定義域を [start, end] とすると、 A のパラメータ定義域は [start, param]、 B のパラメータ定義域は [0, (end - param)] になる。
この曲線が閉じた形式の場合には、 param に対応する点を両端とする開いた形式の 一本のBスプライン曲線 C に変換する。 結果として得られる配列の要素数は 1 である。 この曲線のパラメータ定義域を [start, end] とすると、 C のパラメータ定義域は [0, (end - start)] になる。
param の値が、このBスプライン曲線の定義域を外れている場合には JgclParameterOutOfRange の例外を発生する。
param
- パラメータ値JgclParameterOutOfRange
public JgclBsplineCurve3D truncate(JgclParameterSection section)
section の増分値が負の場合には、進行方向が反転したBスプライン曲線を返す。
section の値が、このBスプライン曲線の定義域を外れている場合には JgclParameterOutOfRange の例外を発生する。
切断後の曲線のパラメータ定義域は [0, section.absIncrease()] になる。
section
- 切断して残す部分を表すパラメータ区間JgclParameterOutOfRange
public JgclPointOnCurve3D[] projectFrom(JgclPoint3D mate)
投影点が存在しないときは長さ 0 の配列を返す。
[内部処理]
曲線上のある点 P(t) から与えられた点へ向かうベクトルと
P(t) における接ベクトル P'(t) の内積を表す多項式 D(t) を生成し、
それを左辺とする代数方程式 D(t) = 0 を解いている。
JgclParametricCurve3D
内の projectFrom
point
- 投影元の点public JgclBsplineCurve3D shiftIfPeriodic(double newStartParam) throws JgclOpenCurve
結果として得られるBスプライン曲線の開始点のパラメータ値は常に 0 になる。
newStartParam
- 開始点となるパラメータ値JgclOpenCurve
- この曲線は開いた形式であるpublic JgclPolyline3D toPolyline(JgclParameterSection section, JgclToleranceForDistance tolerance)
結果として返されるポリラインを構成する点は この曲線をベース曲線とする JgclPointOnCurve3D で あることを期待できる。
section の値が、このベジエ曲線の定義域を外れている場合には JgclParameterOutOfRange の例外を発生する。
JgclParametricCurve3D
内の toPolyline
section
- 直線近似するパラメータ区間tolerance
- 距離の許容誤差JgclParameterOutOfRange
public JgclPureBezierCurve3D[] toPureBezierCurveArray()
この曲線の、パラメータ的に縮退していない有効セグメントに対応するベジエ曲線の列を返す。
public JgclParametricCurve3D parallelTranslate(JgclVector3D moveVec)
JgclParametricCurve3D
内の parallelTranslate
moveVec
- 平行移動の方向と量を表すベクトルpublic JgclBsplineCurve3D elevateOneDegree()
public JgclBsplineCurve3D mergeIfContinuous(JgclBsplineCurve3D mate) throws JgclTwoGeomertiesAreNotContinuous
mate
- この曲線の終了点に繋がる曲線JgclTwoGeomertiesAreNotContinuous
- this の終了点と mate の開始点が一致しないpublic static JgclBsplineCurve3D[] identicalKnotSequences(JgclBsplineCurve3D[] crvs, JgclParameterSection pint)
pint が null の場合には、[0, 1] の区間が与えられたものとして扱う。
crvs
- Bスプライン曲線の配列pint
- 出力する曲線に与えるパラメータ定義域protected JgclParametricCurve3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。
this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。
this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。
transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。
JgclParametricCurve3D
内の doTransformBy
reverseTransform
- 逆変換するのであれば true、そうでなければ falsetransformationOperator
- 幾何的変換演算子transformedGeometries
- 既に同様の変換を施した幾何要素を含むハッシュテーブルpublic JgclBsplineSurface3D tabcylSurface(JgclBsplineCurve3D mate)
this を一方のガイド曲線、mate を他方のガイド曲線として タブシル面を生成する。
mate
- 他方のガイド曲線public JgclBsplineSurface3D loftSurface(JgclVector3D vector, double length)
this を指定の方向に掃引してロフト面を生成する。
vector
- 掃引方向を表すベクトルlength
- 掃引する長さprotected void output(java.io.PrintWriter writer, int indent)
JgclGeometry
内の output
writer
- PrintWriterindent
- インデントの深さJgclGeometry
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |