org.jscience.mathematics.geometry
Class BsplineCurve2D

java.lang.Object
  extended by org.jscience.mathematics.geometry.GeometryElement
      extended by org.jscience.mathematics.geometry.AbstractParametricCurve
          extended by org.jscience.mathematics.geometry.ParametricCurve2D
              extended by org.jscience.mathematics.geometry.BoundedCurve2D
                  extended by org.jscience.mathematics.geometry.FreeformCurveWithControlPoints2D
                      extended by org.jscience.mathematics.geometry.BsplineCurve2D
All Implemented Interfaces:
java.io.Serializable

public class BsplineCurve2D
extends FreeformCurveWithControlPoints2D

�Q���� : ��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.FreeformCurveWithControlPoints2D
controlPoints, weights
 
Constructor Summary
BsplineCurve2D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, Point2D[] controlPoints)
          �m�b�g��𖾎���?
BsplineCurve2D(int degree, boolean periodic, int[] knotMultiplicities, double[] knots, Point2D[] controlPoints, double[] weights)
          �m�b�g��𖾎���?
BsplineCurve2D(int degree, boolean periodic, int knotSpec, Point2D[] controlPoints)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve2D(int degree, boolean periodic, int knotSpec, Point2D[] controlPoints, double[] weights)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve2D(int degree, int[] knotMultiplicities, double[] knots, Point2D[] controlPoints)
          �m�b�g��𖾎���?
BsplineCurve2D(int degree, int[] knotMultiplicities, double[] knots, Point2D[] controlPoints, double[] weights)
          �m�b�g��𖾎���?
BsplineCurve2D(int degree, int knotSpec, Point2D[] controlPoints)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve2D(int degree, int knotSpec, Point2D[] controlPoints, double[] weights)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineCurve2D(Point2D[] points, double[] params)
          �_���?
BsplineCurve2D(Point2D[] points, double[] params, Vector2D[] endvecs)
          �_���?
BsplineCurve2D(Point2D[] points, double[] params, Vector2D[] endvecs, boolean isClosed)
          �_���?
BsplineCurve2D(Point2D[] points, double[] params, Vector2D[] endDir, boolean isClosed, ToleranceForDistance tol, ToleranceForDistance midTol)
          �_���?
 
Method Summary
 Point2D blossoming(int segNumber, double[] parameters)
          ���̋�?
 CommonNormal2D[] commonNormal(ParametricCurve2D mate)
          ���̋�?
 CommonTangent2D[] commonTangent(ParametricCurve2D mate)
          ���̋�?
 Point2D controlPointAt(int n)
          ���̋�?
 Point2D coordinates(double param)
          ���̋�?
 CurveCurvature2D curvature(double param)
          ���̋�?
 int degree()
          ���̋�?
 BsplineCurve2D[] divide(double param)
          ���̂a�X�v���C����?
protected  ParametricCurve2D doTransformBy(boolean reverseTransform, CartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          ���̋�?
 BsplineCurve2D elevateOneDegree()
          ���̋�?
 CurveDerivative2D evaluation(double param)
          ���̋�?
 PointOnCurve2D[] inflexion()
          ���̋�?
 BsplineCurve2D insertKnot(double param)
          ���̋�?
 CurveCurveInterference2D[] interfere(BoundedCurve2D mate)
          ���̗L� �?
 IntersectionPoint2D[] intersect(ParametricCurve2D mate)
          ���̋�?
 boolean isPeriodic()
          ���̋�?
 int knotSpec()
          ���̋�?
 double knotValueAt(int n)
          ���̋�?
 double length(ParameterSection pint)
          �^����ꂽ�p���??
 BsplineCurve2D mergeIfContinuous(BsplineCurve2D mate)
          ���̂a�X�v���C����?
 int nKnotValues()
          ���̋�?
 BsplineCurve2D offsetByBsplineCurve(ParameterSection pint, double magni, int side, ToleranceForDistance tol)
          ���̋�?
protected  void output(java.io.PrintWriter writer, int indent)
          ?
 DoublePolynomial[] polynomial(int iSseg, boolean isPoly)
          ���̋�?
 PointOnCurve2D[] projectFrom(Point2D mate)
          �^����ꂽ�_���炱�̋�?
 BsplineCurve2D shiftIfPeriodic(double newStartParam)
          ����?
 PointOnCurve2D[] singular()
          ���̋�?
 Vector2D tangentVector(double param)
          ���̋�?
 BsplineCurve2D toBsplineCurve()
          ���̗L� �?
 BsplineCurve2D toBsplineCurve(ParameterSection pint)
          ���̋�?
 Polyline2D toPolyline(ParameterSection section, ToleranceForDistance tolerance)
          ���̋�?
 PureBezierCurve2D[] toPureBezierCurveArray()
          ���̂a�X�v���C����?
 BsplineCurve2D truncate(ParameterSection section)
          ���̂a�X�v���C����?
 
Methods inherited from class org.jscience.mathematics.geometry.FreeformCurveWithControlPoints2D
allocateDoubleArray, controlPoints, convRational0Deriv, convRational1Deriv, convRational2Deriv, isFreeform, isPolynomial, isRational, makeUniformWeights, nControlPoints, setCoordinatesToDoubleArray, toDoubleArray, weightAt, weights
 
Methods inherited from class org.jscience.mathematics.geometry.BoundedCurve2D
endPoint, fillet, length, offsetByBoundedCurve, offsetByBsplineCurve, startPoint, toPolyline
 
Methods inherited from class org.jscience.mathematics.geometry.ParametricCurve2D
checkProjection, dimension, fillet, hasPolyline, identicalParameter, is2D, isComposedOfOnlyPolylines, nearestProjectFrom, nearestProjectWithDistanceFrom, offsetByBoundedCurve, 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, is3D, 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

BsplineCurve2D

public BsplineCurve2D(int degree,
                      boolean periodic,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      boolean periodic,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      int[] knotMultiplicities,
                      double[] knots,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      boolean periodic,
                      int knotSpec,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      int knotSpec,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      boolean periodic,
                      int knotSpec,
                      Point2D[] 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��

BsplineCurve2D

public BsplineCurve2D(int degree,
                      int knotSpec,
                      Point2D[] 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��

BsplineCurve2D

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

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

BsplineCurve2D

public BsplineCurve2D(Point2D[] points,
                      double[] params,
                      Vector2D[] 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��

BsplineCurve2D

public BsplineCurve2D(Point2D[] points,
                      double[] params,
                      Vector2D[] 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

BsplineCurve2D

public BsplineCurve2D(Point2D[] points,
                      double[] params,
                      Vector2D[] 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 Point2D controlPointAt(int n)
���̋�?�� n �Ԗڂ�?���_��Ԃ�?B

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

Overrides:
controlPointAt in class FreeformCurveWithControlPoints2D
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�?�ł���� 2?A �L�?�ł���� 3 �ł���?B

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

�L�?��?��?�?�?A R[0] �� WX ?���?A R[1] �� WY ?��� R[2] �� 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 Point2D coordinates(double param)
���̋�?��?A�^����ꂽ�p���??[�^�l�ł�?W�l��Ԃ�?B

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

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

tangentVector

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

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

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

curvature

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

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

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

evaluation

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

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

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

blossoming

public Point2D 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 PointOnCurve2D[] singular()
���̋�?�̓Hٓ_��Ԃ�?B

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

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

inflexion

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

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

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

projectFrom

public PointOnCurve2D[] projectFrom(Point2D 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 ParametricCurve2D
Parameters:
point - ���e���̓_
Returns:
���e�_�̔z��

toBsplineCurve

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

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

toBsplineCurve

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

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

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

intersect

public IntersectionPoint2D[] intersect(ParametricCurve2D mate)
���̋�?�Ƒ��̋�?�̌�_��?�߂�?B

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

Specified by:
intersect in class ParametricCurve2D
Parameters:
mate - ���̋�?�
Returns:
��_�̔z��

interfere

public CurveCurveInterference2D[] interfere(BoundedCurve2D mate)
���̗L� �?�Ƒ��̗L�E��?�̊�?‚�?�߂�?B

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

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

offsetByBsplineCurve

public BsplineCurve2D offsetByBsplineCurve(ParameterSection pint,
                                           double magni,
                                           int side,
                                           ToleranceForDistance tol)
���̋�?�̎w��̋�Ԃ�I�t�Z�b�g������?��?A �^����ꂽ��?��ŋߎ����� Bspline ��?��?�߂�?B

Specified by:
offsetByBsplineCurve in class ParametricCurve2D
Parameters:
pint - �I�t�Z�b�g����p���??[�^���
magni - �I�t�Z�b�g��
side - �I�t�Z�b�g�̌� (WhichSide.LEFT/RIGHT)
tol - �����̋��e��?�
Returns:
���̋�?�̎w��̋�Ԃ̃I�t�Z�b�g��?��ߎ����� Bspline ��?�
See Also:
WhichSide

commonTangent

public CommonTangent2D[] commonTangent(ParametricCurve2D mate)
���̋�?�Ƒ��̋�?�Ƃ̋���?�?��?�߂�?B

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

�����_�ł͎�����Ă��Ȃ�����?A UnsupportedOperationException �̗�O��?�����?B

Specified by:
commonTangent in class ParametricCurve2D
Parameters:
mate - ���̋�?�
Returns:
����?�?�̔z��
Throws:
java.lang.UnsupportedOperationException - ���܂̂Ƃ���?A������Ȃ��@�\�ł���

commonNormal

public CommonNormal2D[] commonNormal(ParametricCurve2D mate)
���̋�?�Ƒ��̋�?�Ƃ̋��ʖ@?��?�߂�?B

���ʖ@?�?݂��Ȃ�?�?��ɂ͒��� 0 �̔z���Ԃ�?B

�����_�ł͎�����Ă��Ȃ�����?A UnsupportedOperationException �̗�O��?�����?B

Specified by:
commonNormal in class ParametricCurve2D
Parameters:
mate - ���̋�?�
Returns:
���ʖ@?�̔z��
Throws:
java.lang.UnsupportedOperationException - ���܂̂Ƃ���?A������Ȃ��@�\�ł���

insertKnot

public BsplineCurve2D 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 BsplineCurve2D[] 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 BsplineCurve2D 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

shiftIfPeriodic

public BsplineCurve2D 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 Polyline2D toPolyline(ParameterSection section,
                             ToleranceForDistance tolerance)
���̋�?�̎w��̋�Ԃ�?A�^����ꂽ��?��Œ�?�ߎ�����|�����C����Ԃ�?B

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

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

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

toPureBezierCurveArray

public PureBezierCurve2D[] 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��

elevateOneDegree

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

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

mergeIfContinuous

public BsplineCurve2D mergeIfContinuous(BsplineCurve2D 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���Ȃ�

doTransformBy

protected ParametricCurve2D doTransformBy(boolean reverseTransform,
                                          CartesianTransformationOperator2D 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 ParametricCurve2D
Parameters:
reverseTransform - �t�ϊ�����̂ł���� true?A�����łȂ���� false
transformationOperator - �􉽓I�ϊ����Z�q
transformedGeometries - ��ɓ��l�̕ϊ���{�����􉽗v�f��܂ރn�b�V���e?[�u��
Returns:
�ϊ���̊􉽗v�f

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