本教程讲解平曲线的创建及几何运算接口的使用。
1.Line
此对象主要用于代表平面直线段,其主要功能位于基类LinearElement中。此外,它还包含一些专有功能,具体如下:
Create1:直接基于两点构造一个线段;
/// <summary> /// 直接基于两点构造一个线段; /// </summary> /// <param name="point1">第一点</param> /// <param name="point2">第二点</param> /// <returns></returns> public static Line Create1(DPoint3d point1, DPoint3d point2) { Line pLine = null; pLine = Line.Create1(point1, point2); return pLine; }
Create2:基于起点、方向以及长度构造一个线段;
/// <summary> /// 基于起点、方向以及长度构造一个线段; /// </summary> /// <param name="startPoint">路线起点</param> /// <param name="direction">路线方向</param> /// <param name="distance">路线程序</param> /// <returns></returns> public static Line Create2(DPoint3d startPoint, double direction, double distance) { Line pLine = null; pLine = Line.Create2(startPoint, direction, distance); return pLine; }
Create3:基于终点、方向以及长度构造一个线段;
/// <summary> /// 基于终点、方向以及长度构造一个线段; /// </summary> /// <param name="endPoint">路线终点</param> /// <param name="direction">路线方向</param> /// <param name="distance">路线长度</param> /// <returns></returns> public static Line Create3(DPoint3d endPoint, double direction, double distance) { Line pLine = null; pLine = Line.Create3(endPoint, direction, distance); return pLine; }
Create4:基于起点、方向构造一个固定长度为200000000的线段;
/// <summary> /// 基于起点、方向构造一个固定长度为200000000的线段; /// </summary> /// <param name="point">路线起点</param> /// <param name="direction">路线方向</param> /// <returns></returns> public static Line Create4(DPoint3d point, double direction) { Line pLine = null; pLine = Line.Create4(point, direction); return pLine; }
Create5:基于起点、向量以及长度构造一个线段;
/// <summary> /// 基于起点、向量以及长度构造一个线段; /// </summary> /// <param name="startPoint">路线起点</param> /// <param name="tangent">路线向量</param> /// <param name="distance">路线长度</param> /// <returns></returns> public static Line Create5(DPoint3d startPoint, DPoint3d tangent, double distance) { Line pLine = null; pLine = Line.Create5(startPoint, tangent, distance); return pLine; }
Create6:基于终点、向量以及长度构造一个线段;
/// <summary> /// 基于终点、向量以及长度构造一个线段; /// </summary> /// <param name="endPoint">路线终点</param> /// <param name="tangent">路线向量</param> /// <param name="distance">路线长度</param> /// <returns></returns> public static Line Create6(DPoint3d endPoint, DPoint3d tangent, double distance) { Line pLine = null; pLine = Line.Create6(endPoint, tangent, distance); return pLine; }
Create7:基于起点、向量构造一个固定长度为200000000的线段;
/// <summary> /// 基于起点、向量构造一个固定长度为200000000的线段; /// </summary> /// <param name="point">路线起点</param> /// <param name="tangent">路线向量</param> /// <returns></returns> public static Line Create7(DPoint3d point, DPoint3d tangent) { Line pLine = null; pLine = Line.Create7(point, tangent); return pLine; }
Create8:直接基于两点构造一个线段,线段的长度小于tol值返回null;
/// <summary> /// 直接基于两点构造一个线段,线段的长度小于tol值返回null;; /// </summary> /// <param name="point1">第一点</param> /// <param name="point2">第二点</param> /// <param name="tol">最小误差值</param> /// <returns></returns> public static Line Create8(DPoint3d point1, DPoint3d point2, double tol) { Line pLine = null; pLine = Line.Create8(point1, point2, tol); return pLine; }
CreateTangentToTwoElements:创建一个与给定两曲线均相切的线段;
/// <summary> /// 创建一个与给定两曲线均相切的线段; /// </summary> /// <param name="backElement">后面的曲线</param> /// <param name="aheadElement">前面的曲线</param> /// <param name="offsetToBack">与后面曲线的偏移距离</param> /// <param name="angleToBack">与后面曲线的角度</param> /// <param name="offsetToAhead">与前面曲线的偏移距离</param> /// <param name="angleToAhead">与前面曲线的角度</param> /// <returns></returns> public static Line[] CreateTangentToTwoElements(LinearElement backElement, LinearElement aheadElement, double offsetToBack, double angleToBack, double offsetToAhead, double angleToAhead) { Line[] pLines = null; pLines = Line.CreateTangentToTwoElements(backElement, aheadElement, offsetToBack, angleToBack, offsetToAhead, angleToAhead); return pLines; }
Reverse:对一个线段进行反向;
Direction:获取直线的方向角(与X轴的逆时针夹角);
2.CircularArc
此对象代表平面上一个圆弧曲线,其主要功能位于基类LinearElement中。此类包含的专有功能如下:
Create1:给定圆心、半径、弧的起始点向量以及圆弧的扫略角,构造圆弧;
/// <summary> /// 给定圆心、半径、弧的起始点向量以及圆弧的扫略角,构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="radius">半径</param> /// <param name="startDirection">弧的起始点方向</param> /// <param name="sweepAngle">扫略角</param> /// <returns></returns> public static CircularArc Create1(DPoint3d center, double radius, double startDirection, double sweepAngle) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create1(center, radius, startDirection, sweepAngle); return pCircularArc; }
Create2:给定圆弧起始点、终点、半径以及圆弧的扫略角构造圆弧;
/// <summary> /// 给定圆弧起始点、终点、半径以及圆弧的扫略角构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="radius">半径</param> /// <param name="sweepAngle">扫略角</param> /// <returns></returns> public static CircularArc Create2(DPoint3d startPoint, DPoint3d endPoint, double radius, double sweepAngle) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create2(startPoint, endPoint, radius, sweepAngle); return pCircularArc; }
Create3:给定圆弧起始点、终点以及圆弧的第三点构造圆弧;
/// <summary> /// 给定圆弧起始点、终点以及圆弧的第三点构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="thruPoint">第三点构</param> /// <returns></returns> public static CircularArc Create3(DPoint3d startPoint, DPoint3d endPoint, DPoint3d thruPoint) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create3(startPoint, endPoint, thruPoint); return pCircularArc; }
Create4:给定圆弧起始点、终点、半径以及圆弧的方向构造圆弧;
/// <summary> /// 给定圆弧起始点、终点、半径以及圆弧的方向构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="radius">半径</param> /// <param name="hand">圆弧的方向</param> /// <returns></returns> public static CircularArc Create4(DPoint3d startPoint, DPoint3d endPoint, double radius, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create4(startPoint, endPoint, radius, hand); return pCircularArc; }
Create5:给定圆弧起始点、终点、弧的起始点向量以及方向构造圆弧;
/// <summary> /// 给定圆弧起始点、终点、弧的起始点向量以及方向构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="startDirection">弧的起始点方向</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create5(DPoint3d startPoint, DPoint3d endPoint, double startDirection, Hand hand) { CircularArc pCircularArc = null; pCircularArc = Create5(startPoint, endPoint, startDirection, hand); return pCircularArc; }
Create6:给定圆弧起始点、终点、弧的终止点向量以及方向构造圆弧;
/// <summary> /// 给定圆弧起始点、终点、弧的终止点向量以及方向构造圆弧; /// </summary> /// <param name="startPoint">始点</param> /// <param name="endPoint">终点</param> /// <param name="endDirection">弧的终止点方向</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create6(DPoint3d startPoint, DPoint3d endPoint, double endDirection, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create6(startPoint, endPoint, endDirection, hand); return pCircularArc; }
Create7:给定圆心、起始点、终点以及圆弧的方向构造圆弧;
/// <summary> /// 给定圆心、起始点、终点以及圆弧的方向构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create7(DPoint3d center, DPoint3d startPoint, DPoint3d endPoint, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create7(center, startPoint, endPoint, hand); return pCircularArc; }
Create8:给定圆心、半径、起始点向量、终点向量以及方向构造圆弧;
/// <summary> /// 给定圆心、半径、起始点、终点点向量以及方向构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="radius">半径</param> /// <param name="startDirection">起始点方向</param> /// <param name="endDirection">终点方向</param> /// <param name="hand"></param> /// <returns></returns> public static CircularArc Create8(DPoint3d center, double radius, double startDirection, double endDirection, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create8(center, radius, startDirection, endDirection, hand); return pCircularArc; }
Create9:给定圆心、半径、起始点向量、弧度以及方向构造圆弧;
/// <summary> /// 给定圆心、半径、起始点向量、终点向量以及方向构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="radius">半径</param> /// <param name="startDirection">起始点方向</param> /// <param name="sweepAngle">扫略角</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create9(DPoint3d center, double radius, double startDirection, double sweepAngle, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create9(center, radius, startDirection, sweepAngle, hand); return pCircularArc; }
Create10:给定圆心、半径、终点向量、弧度以及方向构造圆弧;
/// <summary> /// 给定圆心、半径、起始点向量、弧度以及方向构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="radius">半径</param> /// <param name="endDirection">起始点方向</param> /// <param name="sweepAngle">扫略角</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create10(DPoint3d center, double radius, double endDirection, double sweepAngle, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create10(center, radius, endDirection, sweepAngle, hand); return pCircularArc; }
Create11:给定终点、半径、终点向量、弧度以及方向构造圆弧;
/// <summary> /// 给定终点、半径、终点向量、弧度以及方向构造圆弧; /// </summary> /// <param name="endPoint">终点</param> /// <param name="radius">半径</param> /// <param name="endDirection">终点方向</param> /// <param name="sweepAngle">扫略角</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create11(DPoint3d endPoint, double radius, double endDirection, double sweepAngle, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create11(endPoint, radius, endDirection, sweepAngle, hand); return pCircularArc; }
Create12:给定起始点、半径、起始点向量、弧度以及方向构造圆弧;
/// <summary> /// 给定起始点、半径、起始点向量、弧度以及方向构造圆弧; /// </summary> /// <param name="startPoint">始点</param> /// <param name="radius">半径</param> /// <param name="startDirection">起始点向量</param> /// <param name="sweepAngle">扫略角</param> /// <param name="hand">方向</param> /// <returns></returns> public static CircularArc Create12(DPoint3d startPoint, double radius, double startDirection, double sweepAngle, Hand hand) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create12(startPoint, radius, startDirection, sweepAngle, hand); return pCircularArc; }
Create13:给定起始点、交点以及终点构造圆弧;
/// <summary> /// 给定起始点、交点以及终点构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="piPoint">pi交点</param> /// <param name="endPoint">终点</param> /// <returns></returns> public static CircularArc Create13(DPoint3d startPoint, DPoint3d piPoint, DPoint3d endPoint) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create13(startPoint, piPoint, endPoint); return pCircularArc; }
Create14:给定起始点、终点以及终点的切向向量构造圆弧;
/// <summary> /// 给定起始点、终点以及终点的切向向量构造圆弧; /// </summary> /// <param name="startPoint">始点</param> /// <param name="endPoint">终点</param> /// <param name="endTangentDirection">终点的切向方向</param> /// <returns></returns> public static CircularArc Create14(DPoint3d startPoint, DPoint3d endPoint, double endTangentDirection) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create14(startPoint, endPoint, endTangentDirection); return pCircularArc; }
Create15:给定起始点、终点以及起始点的切向向量构造圆弧;
/// <summary> /// 给定起始点、终点以及起始点的切向向量构造圆弧; /// </summary> /// <param name="startPoint">起始点</param> /// <param name="endPoint">终点</param> /// <param name="startTangentDirection">切向向量</param> /// <returns></returns> public static CircularArc Create15(DPoint3d startPoint, DPoint3d endPoint, double startTangentDirection) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create15(startPoint, endPoint, startTangentDirection); return pCircularArc; }
Create16:给定圆心、半径、起始点的法向向量以及弧长构造圆弧;
/// <summary> /// 给定圆心、半径、起始点的法向向量以及弧长构造圆弧; /// </summary> /// <param name="center">圆心</param> /// <param name="radius">半径</param> /// <param name="startDirection">起始点的法向方向</param> /// <param name="arcLength">弧长</param> /// <returns></returns> public static CircularArc Create16(DPoint3d center, double radius, double startDirection, double arcLength) { CircularArc pCircularArc = null; pCircularArc = CircularArc.Create16(center, radius, startDirection, arcLength); return pCircularArc; }
3.Spiral
此类代表平面上一条回旋线,其功能主要位于基类LinearElement类中。此类的专有方法介绍如下:
Constant:获取回旋线的回旋常数;
/// <summary> /// 获取回旋线的回旋常数; /// </summary>/// <returns></returns> public double GetConstant(Spiral spirl) { return spirl.Constant; }
Deflection:获取偏转值;
/// <summary> /// 获取偏转值; /// </summary> /// <returns></returns> public double GetDeflection(Spiral spirl) { return spirl.Deflection; }
DeltaR:获取起终半径差;
/// <summary> /// 获取起终半径差; /// </summary>/// <returns></returns> public double GetDeltaR(Spiral spirl) { return spirl.DeltaR; }
Direction:获取起始方向角;
/// <summary> /// 获取起始方向角; /// </summary> /// <returns></returns> public double GetDirection(Spiral spirl) { return spirl.Direction; }
EndArcCenterPoint:获取终点圆弧的圆心点;
/// <summary> /// 获取终点圆弧的圆心点; /// </summary> /// <returns></returns> public DPoint3d GetEndArcCenterPoint(Spiral spirl) { return spirl.EndArcCenterPoint; }
EndRadius:获取终点圆弧的径;
/// <summary> /// 获取终点圆弧的半径; /// </summary> /// <returns></returns> public double GetEndRadius(Spiral spirl) { return spirl.EndRadius; }
Hand:获取缓和曲线的转向方向;
/// <summary> /// 获取终点圆弧的径; /// </summary> /// <returns></returns> public Hand GetHand(Spiral spirl) { return spirl.Hand; }
IntrinsicPoint:获取缓和曲线的控制点;
IsOutgoing:确定回旋线方向是否为驶出(即大曲率向小曲率过渡的方向);
/// <summary> /// 确定回旋线方向是否为驶出(即大曲率向小曲率过渡的方向); /// </summary> /// <returns></returns> public bool GetIsOutgoing(Spiral spirl) { return spirl.IsOutgoing; }
IsSimple:确定回旋线是否为简单回旋线;
/// <summary> /// 确定回旋线是否为简单回旋线; /// </summary> /// <returns></returns> public bool GetIsSimple(Spiral spirl) { return spirl.IsSimple; }
KValue:获取回旋线的K值;
/// <summary> /// 获取回旋线的K值; /// </summary> /// <returns></returns> public double GetKValue(Spiral spirl) { return spirl.KValue; }
LongChord:获取缓和曲线弦长;
/// <summary> /// 获取缓和曲线弦长; /// </summary> /// <returns></returns> public double GetLongChord(Spiral spirl) { return spirl.LongChord; }
LongTangent:获取缓和曲线最大切线角;
/// <summary> /// 获取缓和曲线最大切线角; /// </summary> /// <returns></returns> public double GetLongTangent(Spiral spirl) { return spirl.LongTangent; }
PValue:获取回旋线的P值;
/// <summary> /// 获取回旋线的P值; /// </summary> /// <returns></returns> public double GetPValue(Spiral spirl) { return spirl.PValue; }
ShortTangent:获取缓和曲线最小切线角;
/// <summary> /// 获取缓和曲线最小切线角; /// </summary> /// <returns></returns> public double GetShortTangent(Spiral spirl) { return spirl.ShortTangent; }
SpiralType:获取回旋线的类型;
/// <summary> /// 获取回旋线的类型; /// </summary> /// <returns></returns> public SpiralType GetSpiralType(Spiral spirl) { return spirl.SpiralType; }
StartArcCenterPoint:获取起点圆弧的圆心点;
/// <summary> /// 获取起点圆弧的圆心点; /// </summary> /// <returns></returns> public DPoint3d GetStartArcCenterPoint(Spiral spirl) { return spirl.StartArcCenterPoint; }
StartDirection:获取起始方向角;
/// <summary> /// 获取起始方向角; /// </summary> /// <returns></returns> public double GetStartDirection(Spiral spirl) { return spirl.StartDirection; }
StartRadius:获取起点圆弧的半径;
/// <summary> /// 获取起点圆弧的半径; /// </summary> /// <returns></returns> public double GetStartRadius(Spiral spirl) { return spirl.StartRadius; }
SweepAngle:获取回旋线的转角;
/// <summary> /// 获取回旋线的转角; /// </summary> /// <returns></returns> public double GetSweepAngle(Spiral spirl) { return spirl.SweepAngle; }
Xs:获取回旋线的Xs值;
/// <summary> /// 获取回旋线的Xs值; /// </summary> /// <returns></returns> public double GetXs(Spiral spirl) { return spirl.Xs; }
Ys:获取回旋线的Ys值;
/// <summary> /// 获取回旋线的Ys值; /// </summary> /// <returns></returns> public double GetYs(Spiral spirl) { return spirl.Ys; }
4.BSpline
此类代表平面上的一条B样条曲线,其基本功能位于基类LinearElement中。其专有方法介绍如下:
IsRational:确定曲线是否为有理B样条曲线;
/// <summary> /// 确定曲线是否为有理B样条曲线; /// </summary> /// <returns></returns>
public bool GetIsRational(BSpline bspline) { return bspline.IsRational; }
Knots:获取节点数值表;
/// <summary> /// 获取节点数值表; /// </summary> /// <returns></returns> public double[] GetKnots(BSpline bspline) { return bspline.Knots; }
KnotsCount:获取节点个数;
/// <summary> /// 获取节点个数; /// </summary> /// <returns></returns> public int GetKnotsCount(BSpline bspline) { return bspline.KnotsCount; }
PoleCollection:获取极点个数及极点坐标表等信息;
/// <summary> /// 获取极点个数及极点坐标表等信息; /// </summary> /// <returns></returns> public BSplinePoleCollection GetPoleCollection(BSpline bspline) { return bspline.PoleCollection; }
5.LineString
此对象代表平面上一根由多段直线连接而成的折线,其主要功能位于基类LinearElement中。此外,它还包含如下专有功能:
VerticesCount :获取折线顶点个数;
/// <summary> /// 获取折线顶点个数; /// </summary> /// <returns></returns> public int GetVerticesCount(LineString lineString) { return lineString.VerticesCount; }
Create1:由一组点构造对象;
/// <summary> /// 由一组点构造对象; /// </summary> /// <returns></returns> public static LineString Create1(DPoint3d[] points) { LineString pLineString = null; pLineString = LineString.Create1(points); return pLineString; }
Create2:由点数组句柄构造对象;
GetVertices:获取所有的顶点;
/// <summary> /// 获取所有的顶点; /// </summary> /// <returns></returns> public DPoint3d[] GetVertices(LineString lineString) { return lineString.GetVertices(); }
Vertex:由索引号获取对应的点;
/// <summary> /// 由索引号获取对应的点; /// </summary> /// <param name="index">索引号</param> /// <returns></returns> public DPoint3d Vertex(LineString lineString,int index) { return lineString.Vertex(index); }
6.LinearComplex
此类代表一条由若干段基本曲线组合而成的复杂曲线,由于它派生于LinearElement,所以绝大部分基本操作(如曲线公共操作、纵断面曲线公共操作以及复杂曲线公共操作)均位于基类中,具体内容可参照相关类的介绍。此类专有的方法介绍如下:
Create1:由一组LinearElement创建复杂线形;
/// <summary> /// 由一组LinearElement创建复杂线形; /// </summary> /// <param name="components">LinearElement对象数组</param> /// <param name="checkConnection">是否检查连接</param> /// <param name="allowGap">允许有间隔</param> /// <param name="tolerance">允许误差</param> /// <returns></returns> public static LinearComplex Create1(LinearElement[] components, bool checkConnection, bool allowGap, double tolerance) { LinearComplex pLinearComplex = null; pLinearComplex = LinearComplex.Create1(components, checkConnection, allowGap, tolerance); return pLinearComplex; }
GetEnumerator:获取LinearComplex中包含的所有LinearElement集合;
/// <summary> /// 获取LinearComplex中包含的所有LinearElement集合; /// </summary> /// <returns></returns> public IEnumerator GetEnumerator(LinearComplex pLinearComplex) { return pLinearComplex.GetEnumerator(); }
GetNestedSubLinearElements:获取组成LinearComplex的所有子LinearElement;
/// <summary> /// 获取组成LinearComplex的所有子LinearElement; /// </summary> /// <returns></returns> public LinearElement[] GetNestedSubLinearElements(LinearComplex pLinearComplex) { return pLinearComplex.GetNestedSubLinearElements(); }
GetOffsetElement:获取偏移的LinearElement,参数spiralized为true时,偏移后的缓和曲线保持螺旋线形,不会变为B样条;
/// <summary> /// 获取偏移的LinearElement,参数spiralized为true时,偏移后的缓和曲线保持螺旋线形,不会变为B样条; /// </summary> /// <param name="offset">偏移值</param> /// <param name="spiralized">是否保持螺旋线形</param> /// <returns></returns> public LinearElement GetOffsetElement(LinearComplex pLinearComplex, double offset, bool spiralized) { return pLinearComplex.GetOffsetElement(offset, spiralized); }
GetSubLinearElementAtIndex:根据索引号获取LinearElement;
/// <summary> /// 据索引号获取LinearElement; /// </summary> /// <param name="index">索引号</param> /// <returns></returns> public LinearElement GetSubLinearElementAtIndex(LinearComplex pLinearComplex, int index) { return pLinearComplex.GetSubLinearElementAtIndex(index); }
GetSubLinearElementAtParameter:根据参数根据索引号获取LinearElement;
/// <summary> /// 根据参数获取LinearElement; /// </summary> /// <param name="parameter">参数[0-1]</param> /// <returns></returns> public LinearElement GetSubLinearElementAtParameter(LinearComplex pLinearComplex, double parameter) { return pLinearComplex.GetSubLinearElementAtParameter(parameter); }
GetSubLinearElementIsReversed:根据索引号获取LinearElement是否是反向的;
/// <summary> /// 根据索引号获取LinearElement是否是反向的; /// </summary> /// <param name="index">索引号</param> /// <returns></returns> public bool GetSubLinearElementIsReversed(LinearComplex pLinearComplex, int index) { return pLinearComplex.GetSubLinearElementIsReversed(index); }
GetSubLinearElements:获取组成LinearComplex的所有子LinearElement;
/// <summary> /// 获取组成LinearComplex的所有子LinearElement; /// </summary> /// <returns></returns> public LinearElement[] GetSubLinearElements(LinearComplex pLinearComplex) { return pLinearComplex.GetSubLinearElements(); }
IsByPIConvertible:是否可转换为PI点表示;
/// <summary> /// 是否可转换为PI点表示; /// </summary> /// <returns></returns> public bool IsByPIConvertible(LinearComplex pLinearComplex) { return pLinearComplex.IsByPIConvertible(); }
StrokeByComponent:按照指定的抽取方式在曲线上抽取点集;
/// <summary> /// 按照指定的抽取方式在曲线上抽取点集; /// </summary> /// <param name="getParameterHandler">抽取方式</param> /// <param name="linearPoints">抽取到的点集</param> /// <returns></returns> public LinearPointCollection StrokeByComponent(LinearComplex pLinearComplex, GetStrokeByComponentParameter getParameterHandler, LinearPointCollection linearPoints) { return pLinearComplex.StrokeByComponent(getParameterHandler, linearPoints); }
7.ClosedLinearComplex
此类代表平面上一条闭合的复杂曲线,其基本功能位于基类LinearElement中。其专有方法介绍如下:
IsClockWise:是否顺时针;
/// <summary> /// 是否顺时针; /// </summary> /// <returns></returns> public bool GetIsClockWise(ClosedLinearComplex pClosedLinearComplex) { return pClosedLinearComplex.IsClockWise; }
GetArea:获取封闭区域的面积;
/// <summary> /// 获取封闭区域的面积; /// </summary> /// <param name="strokingTolerance">允许差值</param> /// <returns></returns> public double GetArea(ClosedLinearComplex pClosedLinearComplex, double strokingTolerance) { return pClosedLinearComplex.GetArea(strokingTolerance); }
IsClosed:判断是否封闭线形;
/// <summary> /// 判断是否封闭线形; /// </summary> /// <returns></returns> public bool IsClosed(ClosedLinearComplex pClosedLinearComplex) { return pClosedLinearComplex.IsClosed(); }