gen_contour_nurbs_xld T_gen_contour_nurbs_xld GenContourNurbsXld GenContourNurbsXld gen_contour_nurbs_xld (算子)
名称
gen_contour_nurbs_xld T_gen_contour_nurbs_xld GenContourNurbsXld GenContourNurbsXld gen_contour_nurbs_xld — 将 NURBS 曲线变换为 XLD 轮廓。
签名
void GenContourNurbsXld (HObject* Contour , const HTuple& Rows , const HTuple& Cols , const HTuple& Knots , const HTuple& Weights , const HTuple& Degree , const HTuple& MaxError , const HTuple& MaxDistance )
void HXLDCont ::GenContourNurbsXld (const HTuple& Rows , const HTuple& Cols , const HTuple& Knots , const HTuple& Weights , Hlong Degree , const HTuple& MaxError , const HTuple& MaxDistance )
void HXLDCont ::GenContourNurbsXld (const HTuple& Rows , const HTuple& Cols , const HString& Knots , const HString& Weights , Hlong Degree , double MaxError , double MaxDistance )
void HXLDCont ::GenContourNurbsXld (const HTuple& Rows , const HTuple& Cols , const char* Knots , const char* Weights , Hlong Degree , double MaxError , double MaxDistance )
void HXLDCont ::GenContourNurbsXld (const HTuple& Rows , const HTuple& Cols , const wchar_t* Knots , const wchar_t* Weights , Hlong Degree , double MaxError , double MaxDistance )
(
Windows only)
static void HOperatorSet .GenContourNurbsXld (out HObject contour , HTuple rows , HTuple cols , HTuple knots , HTuple weights , HTuple degree , HTuple maxError , HTuple maxDistance )
void HXLDCont .GenContourNurbsXld (HTuple rows , HTuple cols , HTuple knots , HTuple weights , int degree , HTuple maxError , HTuple maxDistance )
void HXLDCont .GenContourNurbsXld (HTuple rows , HTuple cols , string knots , string weights , int degree , double maxError , double maxDistance )
def gen_contour_nurbs_xld (rows : Sequence[float], cols : Sequence[float], knots : MaybeSequence[Union[str, float]], weights : MaybeSequence[Union[str, float]], degree : int, max_error : Union[float, str], max_distance : Union[float, str]) -> HObject
描述
gen_contour_nurbs_xld gen_contour_nurbs_xld GenContourNurbsXld GenContourNurbsXld GenContourNurbsXld gen_contour_nurbs_xld generates an XLD Contour Contour Contour Contour contour contour that
approximates a
NURBS curve (non-uniform rational B-Spline curve). The NURBS curve is
specified by its Degree Degree Degree Degree degree degree , a control polygon (via Rows Rows Rows Rows rows rows and
Cols Cols Cols Cols cols cols ), a Weights Weights Weights Weights weights weights vector and a Knots Knots Knots Knots knots knots
vector.
The Degree Degree Degree Degree degree degree of the curve determines the grade of differentiability of
the curve. The curve lies within the convex hull of its control
polygon (Rows Rows Rows Rows rows rows ,Cols Cols Cols Cols cols cols ). The weights in Weights Weights Weights Weights weights weights
determine how much the curve is
attracted by the individual control points (Rows Rows Rows Rows rows rows ,Cols Cols Cols Cols cols cols ).
A Weights Weights Weights Weights weights weights vector with equal weights for all
control points is generated if 'auto' "auto" "auto" "auto" "auto" "auto" is chosen.
The Knots Knots Knots Knots knots knots vector describes the domain of the curve.
Typically, this parameter can be set to 'auto' "auto" "auto" "auto" "auto" "auto" .
The accuracy of the generated Contour Contour Contour Contour contour contour depends on the two parameters
MaxDistance MaxDistance MaxDistance MaxDistance maxDistance max_distance and MaxError MaxError MaxError MaxError maxError max_error . MaxDistance MaxDistance MaxDistance MaxDistance maxDistance max_distance limits the
maximum distance of two subsequent Contour Contour Contour Contour contour contour points. The maximum
distance between the generated Contour Contour Contour Contour contour contour and the actual NURBS curve
is limited to MaxError MaxError MaxError MaxError maxError max_error . By default the approximation must fulfill
both constraints, but it is possible to set one of these parameters to
'omit' "omit" "omit" "omit" "omit" "omit" . The lower MaxError MaxError MaxError MaxError maxError max_error and MaxDistance MaxDistance MaxDistance MaxDistance maxDistance max_distance are chosen
the better is the approximation of the curve. Note that all Contour Contour Contour Contour contour contour
points lie exactly on the curve (except for numerical inaccuracies).
Definition
A NURBS curve
of degree
is given by
The basis functions
are defined by
Thus, each NURBS curve is determined by its Degree Degree Degree Degree degree degree
,
its control Polygon
(Rows Rows Rows Rows rows rows and
Cols Cols Cols Cols cols cols ), its weight vector
(Weights Weights Weights Weights weights weights ), and its knot vector
(Knots Knots Knots Knots knots knots ).
The grade of differentiability of the curve is set via the degree
.
At least
control points
are required to form
a valid curve.
The knot vector
describes the domain of the curve.
Its length must be
and its entries must be monotonically
increasing.
Every entry
stands for a knot between the curve segments
and
.
Each curve segment
lies within the
convex hull of the control points
.
For every curve segment of length zero, the differentiability at knot
decreases.
The number of occurrences of each knot in the knot vector is called
multiplicity. The maximum multiplicity of one knot is
.
Only the start and the end point's multiplicity can be
(which in fact is the case for most curves, because in this case start and
end point of the curve correspond to the first respectively last point of
the control polygon).
If start and/or end point do not have full multiplicity, the domain of
the curve is restricted to
.
The weights
determine the influence of the individual
control points
on the curve.
Closed Curves: If start and end point are equal
(
)
and Knots Knots Knots Knots knots knots is set to 'auto' "auto" "auto" "auto" "auto" "auto" , the curve is closed
automatically such that all knots feature multiplicity one.
Note that in this case the length of Weights Weights Weights Weights weights weights is required to be
。
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
未采用并行化处理。
参数
Contour Contour Contour Contour contour contour (输出对象) xld_cont → object HXLDCont HObject HXLDCont Hobject *
The contour that approximates the NURBS curve.
Rows Rows Rows Rows rows rows (输入控制) coordinates.y-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Row coordinates of the control polygon.
元素数量:
Rows == Cols && Rows >= Degree + 1
Cols Cols Cols Cols cols cols (输入控制) coordinates.x-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Column coordinates of the control polygon.
元素数量:
Cols == Rows && Cols >= Degree + 1
Knots Knots Knots Knots knots knots (输入控制) string(-array) → HTuple MaybeSequence[Union[str, float]] HTuple Htuple (string / real) (string / double) (HString / double) (char* / double)
The knot vector
。
默认值:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
建议值:
'auto' "auto" "auto" "auto" "auto" "auto"
Weights Weights Weights Weights weights weights (输入控制) string(-array) → HTuple MaybeSequence[Union[str, float]] HTuple Htuple (string / real) (string / double) (HString / double) (char* / double)
The weight vector
。
元素数量:
Weights == Rows
默认值:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
建议值:
'auto' "auto" "auto" "auto" "auto" "auto"
限制:
Weights > 0.0
Degree Degree Degree Degree degree degree (输入控制) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
The degree
of the NURBS curve.
默认值:
3
建议值:
2, 3, 4, 5
限制:
Degree >= 2
MaxError MaxError MaxError MaxError maxError max_error (输入控制) real → HTuple Union[float, str] HTuple Htuple (real / string) (double / string) (double / HString) (double / char*)
Maximum distance between the NURBS
curve and its approximation.
默认值:
1.0
建议值:
'omit' "omit" "omit" "omit" "omit" "omit" , 1.0, 2.0, 3.0, 4.0, 5.0
限制:
MaxError > 0.0
MaxDistance MaxDistance MaxDistance MaxDistance maxDistance max_distance (输入控制) real → HTuple Union[float, str] HTuple Htuple (real / string) (double / string) (double / HString) (double / char*)
Maximum distance between two subsequent
Contour Contour Contour Contour contour contour points.
默认值:
5.0
建议值:
'omit' "omit" "omit" "omit" "omit" "omit" , 1.0, 2.0, 3.0, 4.0, 5.0
限制:
MaxDistance > 0.0
示例(HDevelop)
* use a polygon XLD contour as control polygon and approximate
* the NURBS curve as contour
get_contour_xld(Polygon, Row, Col)
gen_contour_nurbs_xld(NURBSContour, Row, Col, 'auto', 'auto', 3, 1.0, 10.0)
可能的前趋
gen_nurbs_interp gen_nurbs_interp GenNurbsInterp GenNurbsInterp GenNurbsInterp gen_nurbs_interp
可能的后继
gen_polygons_xld gen_polygons_xld GenPolygonsXld GenPolygonsXld GenPolygonsXld gen_polygons_xld
参考文献
L. Piegl, W. Tiller: ”The NURBS Book”, 2nd Edition, Springer, 1997.
模块
基础