org.jscience.mathematics.geometry
Class BsplineCurve3D

java.lang.Object
  extended by org.jscience.mathematics.geometry.GeometryElement
      extended by org.jscience.mathematics.geometry.AbstractParametricCurve
          extended by org.jscience.mathematics.geometry.ParametricCurve3D
              extended by org.jscience.mathematics.geometry.BoundedCurve3D
                  extended by org.jscience.mathematics.geometry.FreeformCurveWithControlPoints3D
                      extended by org.jscience.mathematics.geometry.BsplineCurve3D
All Implemented Interfaces:
java.io.Serializable

public class BsplineCurve3D
extends FreeformCurveWithControlPoints3D

�R���� : ��L�? (��?���) �a�X�v���C����?��їL�?�a�X�v���C����?��\���N���X?B

���̃N���X�̃C���X�^���X��?A �a�X�v���C���̃m�b�g��Ɋւ���?�� knotData (BsplineKnot) ��?��?B ?���_��Ȃǂ�ێ?����t�B?[���h�ɂ‚��Ă�?A �X?[�p?[�N���X�̉�?� ��Q?�?B

�a�X�v���C����?�̃p���??[�^��`���?A�Ή�����m�b�g��ɂ�BČ��܂�?B

t ��p���??[�^�Ƃ���a�X�v���C����?� P(t) �̃p���?�g���b�N�\����?A�ȉ��̒ʂ�?B

        n = ��?�̎�?�
        m = �Z�O�?���g��?� (�J�����`�� : (?���_��?� - ��?�̎�?�), �‚����`�� : ?���_��?�)
        di = controlPoints[i]
        wi = weights[i]
 
�Ƃ���?A��L�?�a�X�v���C����?��
        P(t) =  (di * Nn,i(t)) �̑?�a            (i = 0, ..., (m + n - 1))
 
�L�?�a�X�v���C����?��
                (wi * di * Nn,i(t)) �̑?�a
        P(t) =  --------------------------      (i = 0, ..., (m + n - 1))
                (wi * Nn,i(t)) �̑?�a
 
������ Nn,i(t) �͂a�X�v���C������?�?B �Ȃ�?A�‚����`����?�?��� i > (?���_��?� - 1) �ƂȂ� i �ɂ‚��Ă�?A �Ή�����?���_��?d�݂����ꂼ�� dj, wj (j = i - ?���_��?�) �ƂȂ�?B

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jscience.mathematics.geometry.FreeformCurveWithControlPoints3D
controlPoints, weights
 
Constructor Summary
BsplineCurve3D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, Point3D[] controlPoints)
          �m�b�g��𖾎���?
BsplineCurve3D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, Point3D[] controlPoints, double[] weights)
          �m�b�g��𖾎���?
BsplineCurve3D(int degree, boolean periodic, int knotSpec, Point3D[] controlPoints)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve3D(int degree, boolean periodic, int knotSpec, Point3D[] controlPoints, double[] weights)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve3D(int degree, int[] knotMultiplicities, double[] knots, Point3D[] controlPoints)
          �m�b�g��𖾎���?
BsplineCurve3D(int degree, int[] knotMultiplicities, double[] knots, Point3D[] controlPoints, double[] weights)
          �m�b�g��𖾎���?
BsplineCurve3D(int degree, int knotSpec, Point3D[] controlPoints)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve3D(int degree, int knotSpec, Point3D[] controlPoints, double[] weights)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve3D(Point3D[] points, double[] params)
          �_���?
BsplineCurve3D(Point3D[] points, double[] params, Vector3D[] endvecs)
          �_���?
BsplineCurve3D(Point3D[] points, double[] params, Vector3D[] endvecs, boolean isClosed)
          �_���?
BsplineCurve3D(Point3D[] points, double[] params, Vector3D[] endDir, boolean isClosed, ToleranceForDistance tol, ToleranceForDistance midTol)
          �_���?
 
Method Summary
 Point3D blossoming(int segNumber, double[] parameters)
          ���̋�?
 Point3D controlPointAt(int n)
          ���̋�?
 Point3D coordinates(double param)
          ���̋�?
 CurveCurvature3D curvature(double param)
          ���̋�?
 int degree()
          ���̋�?
 BsplineCurve3D[] divide(double param)
          ���̂a�X�v���C����?
protected  ParametricCurve3D doTransformBy(boolean reverseTransform, CartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          ���̋�?
 BsplineCurve3D elevateOneDegree()
          ���̋�?
 CurveDerivative3D evaluation(double param)
          ���̋�?
static BsplineCurve3D[] identicalKnotSequences(BsplineCurve3D[] crvs, ParameterSection pint)
          �^����ꂽ�a�X�v���C����?
 PointOnCurve3D[] inflexion()
          ���̋�?
 BsplineCurve3D insertKnot(double param)
          ���̋�?
 CurveCurveInterference3D[] interfere(BoundedCurve3D mate)
          ���̗L� �?
 IntersectionPoint3D[] intersect(ElementarySurface3D mate)
          ���̋�?
 IntersectionPoint3D[] intersect(ParametricCurve3D mate)
          ���̋�?
 IntersectionPoint3D[] intersect(ParametricSurface3D mate)
          ���̋�?
 boolean isPeriodic()
          ���̋�?
 int knotSpec()
          ���̋�?
 double knotValueAt(int n)
          ���̋�?
 double length(ParameterSection pint)
          �^����ꂽ�p���??
 BsplineSurface3D loftSurface(Vector3D vector, double length)
          �?
 BsplineCurve3D mergeIfContinuous(BsplineCurve3D mate)
          ���̂a�X�v���C����?
 int nKnotValues()
          ���̋�?
protected  void output(java.io.PrintWriter writer, int indent)
          ?
 ParametricCurve3D parallelTranslate(Vector3D moveVec)
          ���̋�?
 DoublePolynomial[] polynomial(int iSseg, boolean isPoly)
          ���̋�?
 PointOnCurve3D[] projectFrom(Point3D mate)
          �^����ꂽ�_���炱�̋�?
 BsplineCurve3D shiftIfPeriodic(double newStartParam)
          ����?
 PointOnCurve3D[] singular()
          ���̋�?
 BsplineSurface3D tabcylSurface(BsplineCurve3D mate)
          �^�u�V���ʂ�?
 Vector3D tangentVector(double param)
          ���̋�?
 BsplineCurve3D toBsplineCurve()
          ���̗L� �?
 BsplineCurve3D toBsplineCurve(ParameterSection pint)
          ���̋�?
 Polyline3D toPolyline(ParameterSection section, ToleranceForDistance tolerance)
          ���̋�?
 PureBezierCurve3D[] toPureBezierCurveArray()
          ���̂a�X�v���C����?
 double torsion(double param)
          ���̋�?
 BsplineCurve3D truncate(ParameterSection section)
          ���̂a�X�v���C����?
 
Methods inherited from class org.jscience.mathematics.geometry.FreeformCurveWithControlPoints3D
allocateDoubleArray, controlPoints, convRational0Deriv, convRational1Deriv, convRational2Deriv, convRational3Deriv, isFreeform, isPolynomial, isRational, makeUniformWeights, nControlPoints, setCoordinatesToDoubleArray, toDoubleArray, weightAt, weights
 
Methods inherited from class org.jscience.mathematics.geometry.BoundedCurve3D
endPoint, length, startPoint, toPolyline
 
Methods inherited from class org.jscience.mathematics.geometry.ParametricCurve3D
checkProjection, dimension, hasPolyline, identicalParameter, is3D, isComposedOfOnlyPolylines, nearestProjectFrom, nearestProjectWithDistanceFrom, pointToParameter, reverseTransformBy, transformBy, transformBy
 
Methods inherited from class org.jscience.mathematics.geometry.AbstractParametricCurve
checkValidity, checkValidity, isClosed, isCurve, isFinite, isInfinite, isNonPeriodic, isOpen, isParametric, isValid, parameterDomain
 
Methods inherited from class org.jscience.mathematics.geometry.GeometryElement
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is2D, isPlacement, isPoint, isSurface, isTransformationOperator, isVector, makeIndent, output
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BsplineCurve3D

public BsplineCurve3D(int degree,
                      boolean periodic,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point3D[] controlPoints)
�m�b�g��𖾎���?A ?���_���^���đ�?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, KnotType.UNSPECIFIED, periodic, knotMultiplicities, knots, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
periodic - �‚����`�����ۂ���\���t���O
knotMultiplicities - �m�b�g��?d�x�̔z��
knots - �m�b�g�l�̔z��
controlPoints - ?���_�̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point3D[] controlPoints)
�m�b�g��𖾎���?A?���_���^���ĊJ�����`���̑�?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, KnotType.UNSPECIFIED, false, knotMultiplicities, knots, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
knotMultiplicities - �m�b�g��?d�x�̔z��
knots - �m�b�g�l�̔z��
controlPoints - ?���_�̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      boolean periodic,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point3D[] controlPoints,
                      double[] weights)
�m�b�g��𖾎���?A ?���_���?d�ݗ��^���ėL�?��?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, KnotType.UNSPECIFIED, periodic, knotMultiplicities, knots, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
periodic - �‚����`�����ۂ���\���t���O
knotMultiplicities - �m�b�g��?d�x�̔z��
knots - �m�b�g�l�̔z��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point3D[] controlPoints,
                      double[] weights)
�m�b�g��𖾎���?A ?���_���?d�ݗ��^���ĊJ�����`���̗L�?��?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, KnotType.UNSPECIFIED, false, knotMultiplicities, knots, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
knotMultiplicities - �m�b�g��?d�x�̔z��
knots - �m�b�g�l�̔z��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      boolean periodic,
                      int knotSpec,
                      Point3D[] controlPoints)
�m�b�g��𖾎������� �m�b�g��̎�ʂ�?���_���^���đ�?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AknotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, knotSpec, periodic, null, null, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
periodic - �‚����`�����ۂ���\���t���O
knotSpec - �m�b�g��̎��
controlPoints - ?���_�̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      int knotSpec,
                      Point3D[] controlPoints)
�m�b�g��𖾎������� �m�b�g��̎�ʂ�?���_���^���ĊJ������?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AknotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, knotSpec, false, null, null, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
knotSpec - �m�b�g��̎��
controlPoints - ?���_�̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      boolean periodic,
                      int knotSpec,
                      Point3D[] controlPoints,
                      double[] weights)
�m�b�g��𖾎������� �m�b�g��̎�ʂ�?���_�񂨂��?d�ݗ��^���ėL�?��?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AknotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, knotSpec, periodic, null, null, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
periodic - �‚����`�����ۂ���\���t���O
knotSpec - �m�b�g��̎��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineCurve3D

public BsplineCurve3D(int degree,
                      int knotSpec,
                      Point3D[] controlPoints,
                      double[] weights)
�m�b�g��𖾎������� �m�b�g��̎�ʂ�?���_�񂨂��?d�ݗ��^���ĊJ�����`���̗L�?��?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AknotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

knotData ��?\�z�ɂ�?A new BsplineKnot(degree, knotSpec, false, null, null, nControlPoints()) ��Ă�?o���Ă���?B

Parameters:
degree - ��?�̎�?�
knotSpec - �m�b�g��̎��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineCurve3D

public BsplineCurve3D(Point3D[] points,
                      double[] params)
�_���?A����ɑΉ�����p���??[�^�l�̗��^����?A ���̓_����Ԃ���J�����`���̑�?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

Parameters:
points - ��Ԃ���_��
params - �_���̊e�_�ɂ�����p���??[�^�l�̗�

BsplineCurve3D

public BsplineCurve3D(Point3D[] points,
                      double[] params,
                      Vector3D[] endvecs)
�_���?A����ɑΉ�����p���??[�^�l�̗񂨂�ї��[�_�ł�?ڃx�N�g����^����?A ���̓_����Ԃ���J�����`���̑�?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

endvecs[0] �Ŏn�_�ł�?ڃx�N�g��?A endvecs[1] ��?I�_�ł�?ڃx�N�g����?B

Parameters:
points - ��Ԃ���_��
params - �_���̊e�_�ɂ�����p���??[�^�l�̗�
endvecs - ���[�_�ł�?ڃx�N�g��

BsplineCurve3D

public BsplineCurve3D(Point3D[] points,
                      double[] params,
                      Vector3D[] endvecs,
                      boolean isClosed)
�_���?A����ɑΉ�����p���??[�^�l�̗�?A���[�_�ł�?ڃx�N�g������ъJ��?���^����?A ���̓_����Ԃ��鑽?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

isClosed �� true ��?�?�?A (params �̗v�f?�) = (points �̗v�f?� + 1) �ƂȂBĂ���K�v������?B

endvecs[0] �Ŏn�_�ł�?ڃx�N�g��?A endvecs[1] ��?I�_�ł�?ڃx�N�g����?B �Ȃ�?AisClosed �� true ��?�?��ɂ�?A���̔z��͎Q?Ƃ���Ȃ�?B

Parameters:
points - ��Ԃ���_��
params - �_���̊e�_�ɂ�����p���??[�^�l�̗�
endvecs - ���[�_�ł�?ڃx�N�g��
isClosed - �‚����`���̋�?��?�?����邩�ۂ��̃t���O

BsplineCurve3D

public BsplineCurve3D(Point3D[] points,
                      double[] params,
                      Vector3D[] endDir,
                      boolean isClosed,
                      ToleranceForDistance tol,
                      ToleranceForDistance midTol)
�_���?A����ɑΉ�����p���??[�^�l�̗�?A���[�_�ł�?�?�̕���ъJ��?���^����?A ���̓_���ߎ����鑽?�����?�Ƃ��ăI�u�W�F�N�g��?\�z����?B

isClosed �� true ��?�?�?A (params �̗v�f?�) = (points �̗v�f?� + 1) �ƂȂBĂ���K�v������?B

endDir[0] �Ŏn�_�ł�?�?���?A endDir[1] ��?I�_�ł�?�?����?B �Ȃ�?AisClosed �� true ��?�?��ɂ�?A���̔z��͎Q?Ƃ���Ȃ�?B

�w�肳�ꂽ?��x�ŋߎ��ł��Ȃ��B�?�?��ɂ�?A �^����ꂽ�_����Ԃ����?��?�?�����?B

Parameters:
points - ��Ԃ���_��
params - �_���̊e�_�ɂ�����p���??[�^�l�̗�
endDir - ���[�_�ł�?�?�̕��
isClosed - �‚����`���̋�?��?�?����邩�ۂ��̃t���O
tol - �e�_�ɂ�����ߎ���?��x
midTol - �_�̒��Ԃɂ�����ߎ���?��x
Method Detail

degree

public int degree()
���̋�?�̎�?���Ԃ�?B

Returns:
��?�

knotSpec

public int knotSpec()
���̋�?�̃m�b�g�̎�ʂ�Ԃ�?B

Returns:
�m�b�g�̎��
See Also:
KnotType

nKnotValues

public int nKnotValues()
���̋�?�̃m�b�g��?���Ԃ�?B

�����Ō���?u�m�b�g��?�?v�Ƃ� knotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z��̒����ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̃m�b�g��?��ł���?B

Returns:
�m�b�g��?�

knotValueAt

public double knotValueAt(int n)
���̋�?�̃m�b�g��� n �Ԃ߂̃m�b�g�l��Ԃ�?B

�����Ō���?un �Ԗ�?v�Ƃ� knotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z���̃C���f�b�N�X�ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̈Ӗ��ł̃C���f�b�N�X�ł���?B

Parameters:
n - �C���f�b�N�X
Returns:
n �Ԃ߂̃m�b�g�l

isPeriodic

public boolean isPeriodic()
���̋�?�̃p���??[�^��`�悪���I���ۂ���Ԃ�?B

�p���??[�^�h�?�C���𒲂ׂ�K�v���Ȃ��̂ŃI?[�o?[���C�h����?B

Overrides:
isPeriodic in class AbstractParametricCurve
Returns:
���I�ł���� true?A�����łȂ���� false

controlPointAt

public Point3D controlPointAt(int n)
���̋�?�� n �Ԗڂ�?���_��Ԃ�?B

�‚����`����?�?��̓C���f�b�N�X����I�Ɉ���?B

Overrides:
controlPointAt in class FreeformCurveWithControlPoints3D
Parameters:
n - �C���f�b�N�X
Returns:
?���_

polynomial

public DoublePolynomial[] polynomial(int iSseg,
                                     boolean isPoly)
���̋�?�̎w��̃Z�O�?���g�̑�?����\����Ԃ�?B

���ʂƂ��ē�����z�� R �̗v�f?���?A ���̋�?��L�?�ł���� 3?A �L�?�ł���� 4 �ł���?B

��L�?��?��?�?�?A R[0] �� X ?���?A R[1] �� Y ?��� R[2] �� Z ?��� �̑�?����\����\��?B

�L�?��?��?�?�?A R[0] �� WX ?���?A R[1] �� WY ?��� R[2] �� WZ ?��� R[3] �� W ?��� �̑�?����\����\��?B

Parameters:
iSseg - �Z�O�?���g�̔�?�
isPoly - ��L�?�ł��邩�ǂ���
Returns:
��?����̔z��

length

public double length(ParameterSection pint)
�^����ꂽ�p���??[�^��Ԃɂ����邱�̋�?�̎ ��?�ł̒��� (���̂�) ��Ԃ�?B

pint �̑?���l�͕��ł©�܂�Ȃ�?B

�^����ꂽ�p���??[�^��Ԃ����̋�?�̒�`���O��Ă���?�?��ɂ� ParameterOutOfRange �̗�O��?�����?B

Specified by:
length in class AbstractParametricCurve
Parameters:
pint - ��?�̒�����?�߂�p���??[�^���
Returns:
�w�肳�ꂽ�p���??[�^��Ԃɂ������?�̒���
See Also:
ParameterOutOfRange

coordinates

public Point3D coordinates(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł�?W�l��Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
coordinates in class ParametricCurve3D
Parameters:
param - �p���??[�^�l
Returns:
?W�l
See Also:
ParameterOutOfRange

tangentVector

public Vector3D tangentVector(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł�?ڃx�N�g����Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
tangentVector in class ParametricCurve3D
Parameters:
param - �p���??[�^�l
Returns:
?ڃx�N�g��
See Also:
ParameterOutOfRange

curvature

public CurveCurvature3D curvature(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł̋ȗ���Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
curvature in class ParametricCurve3D
Parameters:
param - �p���??[�^�l
Returns:
�ȗ�
See Also:
ParameterOutOfRange

torsion

public double torsion(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł̃��C����Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
torsion in class ParametricCurve3D
Parameters:
param - �p���??[�^�l
Returns:
���C��
See Also:
ParameterOutOfRange

evaluation

public CurveDerivative3D evaluation(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł̓���?���Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
evaluation in class ParametricCurve3D
Parameters:
param - �p���??[�^�l
Returns:
����?�
See Also:
ParameterOutOfRange

blossoming

public Point3D blossoming(int segNumber,
                          double[] parameters)
���̋�?��?A�^����ꂽ�p���??[�^��ɑ΂���u�?�b�T�~���O�̌��ʂ�Ԃ�?B

parameters �̗v�f?���?A���̋�?�̎�?��Ɉ�v���Ă���K�v������?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Parameters:
segNumber - ���Z��?ۂƂȂ�Z�O�?���g�̔�?� (?擪�� 0)
parameters - �p���??[�^�l�̔z��
Returns:
�u�?�b�T�~���O�̌��ʂł���?W�l
See Also:
ParameterOutOfRange

singular

public PointOnCurve3D[] singular()
���̋�?�̓Hٓ_��Ԃ�?B

�Hٓ_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Specified by:
singular in class ParametricCurve3D
Returns:
�Hٓ_�̔z��

inflexion

public PointOnCurve3D[] inflexion()
���̋�?�̕ϋȓ_��Ԃ�?B

�ϋȓ_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Specified by:
inflexion in class ParametricCurve3D
Returns:
�ϋȓ_�̔z��

toBsplineCurve

public BsplineCurve3D toBsplineCurve()
���̗L� �?�S�̂쵖���?Č�����L�? Bspline ��?��Ԃ�?B

Overrides:
toBsplineCurve in class BoundedCurve3D
Returns:
���̋�?�S�̂�?Č�����L�? Bspline ��?�

toBsplineCurve

public BsplineCurve3D toBsplineCurve(ParameterSection pint)
���̋�?�̎w��̋�Ԃ쵖���?Č�����L�? Bspline ��?��Ԃ�?B

pint �̒l��?A���̂a�X�v���C����?�̒�`���O��Ă���?�?��ɂ� ParameterOutOfRange �̗�O��?�����?B

Specified by:
toBsplineCurve in class ParametricCurve3D
Parameters:
pint - �L�? Bspline ��?��?�����p���??[�^���
Returns:
���̋�?�̎w��̋�Ԃ�?Č�����L�? Bspline ��?�
See Also:
ParameterOutOfRange

intersect

public IntersectionPoint3D[] intersect(ParametricCurve3D mate)
                                throws IndefiniteSolutionException
���̋�?�Ƒ��̋�?�̌�_��?�߂�?B

��_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Specified by:
intersect in class ParametricCurve3D
Parameters:
mate - ���̋�?�
Returns:
��_�̔z��
Throws:
IndefiniteSolutionException - �⪕s��ł���

intersect

public IntersectionPoint3D[] intersect(ParametricSurface3D mate)
                                throws IndefiniteSolutionException
���̋�?�Ƒ��̋Ȗʂ̌�_��?�߂�?B

��_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Specified by:
intersect in class ParametricCurve3D
Parameters:
mate - ���̋Ȗ�
Returns:
��_�̔z��
Throws:
IndefiniteSolutionException - �⪕s��ł���

intersect

public IntersectionPoint3D[] intersect(ElementarySurface3D mate)
���̋�?�Ƒ��̋Ȗ� (��?͋Ȗ�) �̌�_��?�߂�?B

��_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Parameters:
mate - ���̋Ȗ� (��?͋Ȗ�)
Returns:
��_�̔z��

interfere

public CurveCurveInterference3D[] interfere(BoundedCurve3D mate)
���̗L� �?�Ƒ��̗L� �?�̊�?‚�?�߂�?B

��?‚���?݂��Ȃ�?�?��ɂ͒��� 0 �̔z���Ԃ�?B

Specified by:
interfere in class BoundedCurve3D
Parameters:
mate - ���̋�?�
Returns:
���?�̊�?‚̔z��

insertKnot

public BsplineCurve3D insertKnot(double param)
���̋�?��?A�w��̃p���??[�^�l�̈ʒu��?V���ȃm�b�g��}���?��Ԃ�?B

�`?�͂��̋�?�̂܂܂�?A�Z�O�?���g����‘?�����a�X�v���C����?��Ԃ�?B

Parameters:
param - �m�b�g��}���p���??[�^�l
Returns:
�m�b�g�}���̂a�X�v���C����?�

divide

public BsplineCurve3D[] divide(double param)
���̂a�X�v���C����?��?A�^����ꂽ�p���??[�^�l�ŕ�������?B

���̋�?�J�����`����?�?��ɂ�?A param �ɑΉ�����_�őO���{�ɕ�������?B ���ʂƂ��ē�����z��̗v�f?��� 2 ��?A ?�?��̗v�f��?u�n�_���番���_�܂ł�\���a�X�v���C����?� A?v?A ��Ԗڂ̗v�f��?u�����_����?I�_�܂ł�\���a�X�v���C����?� B?v �����?B ���̋�?�̃p���??[�^��`��� [start, end] �Ƃ����?A A �̃p���??[�^��`��� [start, param]?A B �̃p���??[�^��`��� [0, (end - param)] �ɂȂ�?B

���̋�?�‚����`����?�?��ɂ�?A param �ɑΉ�����_�𗼒[�Ƃ���J�����`���� ��{�̂a�X�v���C����?� C �ɕϊ�����?B ���ʂƂ��ē�����z��̗v�f?��� 1 �ł���?B ���̋�?�̃p���??[�^��`��� [start, end] �Ƃ����?A C �̃p���??[�^��`��� [0, (end - start)] �ɂȂ�?B

param �̒l��?A���̂a�X�v���C����?�̒�`���O��Ă���?�?��ɂ� ParameterOutOfRange �̗�O��?�����?B

Parameters:
param - �p���??[�^�l
Returns:
������̂a�X�v���C����?��܂ޔz��
See Also:
ParameterOutOfRange

truncate

public BsplineCurve3D truncate(ParameterSection section)
���̂a�X�v���C����?��?A�^����ꂽ�p���??[�^��Ԃ�?ؒf����?B

section �̑?���l������?�?��ɂ�?A?i?s���]�����a�X�v���C����?��Ԃ�?B

section �̒l��?A���̂a�X�v���C����?�̒�`���O��Ă���?�?��ɂ� ParameterOutOfRange �̗�O��?�����?B

?ؒf��̋�?�̃p���??[�^��`��� [0, section.absIncrease()] �ɂȂ�?B

Parameters:
section - ?ؒf���Ďc��������\���p���??[�^���
Returns:
?ؒf���Ďc����������\���a�X�v���C����?�
See Also:
ParameterOutOfRange

projectFrom

public PointOnCurve3D[] projectFrom(Point3D mate)
�^����ꂽ�_���炱�̋�?�ւ̓��e�_��?�߂�?B

���e�_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

[�Ք?��?]
��?�?�̂���_ P(t) ����^����ꂽ�_�֌�x�N�g���� P(t) �ɂ�����?ڃx�N�g�� P'(t) �̓�?ς�\����?��� D(t) ��?�?���?A �����?��ӂƂ����?���� D(t) = 0 ��⢂Ă���?B

Specified by:
projectFrom in class ParametricCurve3D
Parameters:
point - ���e���̓_
Returns:
���e�_�̔z��

shiftIfPeriodic

public BsplineCurve3D shiftIfPeriodic(double newStartParam)
                               throws OpenCurveException
����?u�‚����`��?v�̂a�X�v���C����?�̌`?��ς�����?A �^����ꂽ�p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���悤�� �ϊ�������̂�Ԃ�?B

���ʂƂ��ē�����a�X�v���C����?�̊J�n�_�̃p���??[�^�l��?�� 0 �ɂȂ�?B

Parameters:
newStartParam - �J�n�_�ƂȂ�p���??[�^�l
Returns:
�^����ꂽ�p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���a�X�v���C����?�
Throws:
OpenCurveException - ���̋�?�͊J�����`���ł���

toPolyline

public Polyline3D toPolyline(ParameterSection section,
                             ToleranceForDistance tolerance)
���̋�?�̎w��̋�Ԃ�?A�^����ꂽ��?��Œ�?�ߎ�����|�����C����Ԃ�?B

���ʂƂ��ĕԂ����|�����C����?\?�����_�� ���̋�?��x?[�X��?�Ƃ��� PointOnCurve3D �� ���邱�Ƃ��҂ł���?B

section �̒l��?A���̃x�W�G��?�̒�`���O��Ă���?�?��ɂ� ParameterOutOfRange �̗�O��?�����?B

Specified by:
toPolyline in class ParametricCurve3D
Parameters:
section - ��?�ߎ�����p���??[�^���
tolerance - �����̋��e��?�
Returns:
���̋�?�̎w��̋�Ԃ�?�ߎ�����|�����C��
See Also:
ParameterOutOfRange

toPureBezierCurveArray

public PureBezierCurve3D[] toPureBezierCurveArray()
���̂a�X�v���C����?��?Č�����x�W�G��?�̗��Ԃ�?B

���̋�?��?A�p���??[�^�I��?k�ނ��Ă��Ȃ��L��Z�O�?���g�ɑΉ�����x�W�G��?�̗��Ԃ�?B

Returns:
�x�W�G��?�̔z��

parallelTranslate

public ParametricCurve3D parallelTranslate(Vector3D moveVec)
���̋�?��?A�^����ꂽ�x�N�g����?]�Bĕ�?s�ړ�������?��Ԃ�?B

Specified by:
parallelTranslate in class ParametricCurve3D
Parameters:
moveVec - ��?s�ړ��̕��Ɨʂ�\���x�N�g��
Returns:
��?s�ړ���̋�?�

elevateOneDegree

public BsplineCurve3D elevateOneDegree()
���̋�?��?A�`?�⻂̂܂܂ɂ���?A��?�����?グ����?��Ԃ�?B

Returns:
����`?��?A��?������?オ�B���?�

mergeIfContinuous

public BsplineCurve3D mergeIfContinuous(BsplineCurve3D mate)
                                 throws TwoGeomertiesAreNotContinuousException
���̂a�X�v���C����?��?A ���̂a�X�v���C����?��?I���_�Ɋ􉽓I�Ɍq���BĂ���a�X�v���C����?�� ��{�̂a�X�v���C����?�ɂ���?B

Parameters:
mate - ���̋�?��?I���_�Ɍq�����?�
Returns:
this ��?I���_�� mate �̊J�n�_��q���ň�{�ɂ�����?�
Throws:
TwoGeomertiesAreNotContinuousException - this ��?I���_�� mate �̊J�n�_����v���Ȃ�

identicalKnotSequences

public static BsplineCurve3D[] identicalKnotSequences(BsplineCurve3D[] crvs,
                                                      ParameterSection pint)
�^����ꂽ�a�X�v���C����?�̗�̃m�b�g��/��?�/?���_��?��𑵂���?B

pint �� null ��?�?��ɂ�?A[0, 1] �̋�Ԃ��^����ꂽ��̂Ƃ��Ĉ���?B

Parameters:
crvs - �a�X�v���C����?�̔z��
pint - ?o�͂����?�ɗ^����p���??[�^��`��
Returns:
�m�b�g��/��?�/?���_��?��̑��B��a�X�v���C����?�̔z��

doTransformBy

protected ParametricCurve3D doTransformBy(boolean reverseTransform,
                                          CartesianTransformationOperator3D transformationOperator,
                                          java.util.Hashtable transformedGeometries)
���̋�?��?A�^����ꂽ�􉽓I�ϊ����Z�q�ŕϊ�����?B

transformedGeometries ��?A �ϊ��O�̊􉽗v�f��L?[�Ƃ�?A �ϊ���̊􉽗v�f��l�Ƃ���n�b�V���e?[�u���ł���?B

this �� transformedGeometries ��ɃL?[�Ƃ��đ�?݂��Ȃ�?�?��ɂ�?A this �� transformationOperator �ŕϊ�������̂�Ԃ�?B ����?ۂɃ?�\�b�h�Ք�ł� this ��L?[?A �ϊ����ʂ�l�Ƃ��� transformedGeometries �ɒljB���?B

this �� transformedGeometries ��Ɋ�ɃL?[�Ƃ��đ�?݂���?�?��ɂ�?A ��?ۂ̕ϊ���?s�Ȃ킸?A���̃L?[�ɑΉ�����l��Ԃ�?B ����?��?��?ċA�I��?s�Ȃ���?B

transformedGeometries �� null �ł�?\��Ȃ�?B transformedGeometries �� null ��?�?��ɂ�?A ?�� this �� transformationOperator �ŕϊ�������̂�Ԃ�?B

Specified by:
doTransformBy in class ParametricCurve3D
Parameters:
reverseTransform - �t�ϊ�����̂ł���� true?A�����łȂ���� false
transformationOperator - �􉽓I�ϊ����Z�q
transformedGeometries - ��ɓ��l�̕ϊ���{�����􉽗v�f��܂ރn�b�V���e?[�u��
Returns:
�ϊ���̊􉽗v�f

tabcylSurface

public BsplineSurface3D tabcylSurface(BsplineCurve3D mate)
�^�u�V���ʂ�?�?�?B

this ����̃K�C�h��?�?Amate �𑼕�̃K�C�h��?�Ƃ��� �^�u�V���ʂ�?�?�����?B

Parameters:
mate - ����̃K�C�h��?�
Returns:
?�?������^�u�V���ʂ�\���a�X�v���C���Ȗ�

loftSurface

public BsplineSurface3D loftSurface(Vector3D vector,
                                    double length)
�?�t�g�ʂ�?�?�?B

this ��w��̕��ɑ|��ă?�t�g�ʂ�?�?�����?B

Parameters:
vector - �|�����\���x�N�g��
length - �|��钷��
Returns:
?�?������?�t�g�ʂ�\���a�X�v���C���Ȗ�

output

protected void output(java.io.PrintWriter writer,
                      int indent)
?o�̓X�g��?[���Ɍ`?�?���?o�͂���?B

Specified by:
output in class GeometryElement
Parameters:
writer - PrintWriter
indent - �C���f���g��?[��
See Also:
GeometryElement