DEllipse3d
A DEllipse3d is created by a plethora of methods. One can even use a fillet between DRay3d. Arcs or Circles are special cases of a DEllipse3d, where the arc radii are the same.
new DEllipse3d(double cx, double cy, double ux, double uy, double vx, double vy) new DEllipse3d(refCenter, ref DVector3d Vector0, ref DVector3d Vector90) new DEllipse3d(refCenter, ref Vector0, ref Vector90, DAngle startAngle, DAngle sweepAngle) new DEllipse3d(double cx, double cy, double cz, double ux, double uy, double uz, double vx, double vy, double vz, DAngle startAngle, DAngle sweepAngle) new DEllipse3d(double cx, double cy, double ux, double uy, double vx, double vy, DAngle startAngle, DAngle sweepAngle) new DEllipse3d(double cx, double cy, double cz, double ux, double uy, double uz, double vx, double vy, double vz)
Arc Length
arc.Length
Center
arc.Center
PointAtAngle
PointAtAngle(double theta) PointAtAngle(double theta, out DVector3d Derivative1) PointAtAngle(double theta, out DVector3d Derivative1, out DVector3d Derivative2)
PointAtFraction(fraction)
PointAtFraction(double fraction) PointAtFraction(double fraction, out DVector3d Derivative1) PointAtFraction(double fraction, out DVector3d Derivative1, out DVector3d Derivative2)
PerpendicularTangentFractions
For this to work the double[] EllipseFraction must be initialised beforehand and it must be created explicitly as a double array: double[].
ellip.PerpendicularTangentFractions(ref DVector3d Normal, ref double[] EllipseFraction) eg. DEllipse3d ellipse = new DEllipse3d(0, 0, 0, 2, 0, 0, 0, 2, 0); ctor3d Normal = new DVector3d(0, 1, 0); double[] EllipseFraction = {}; EllipseFraction[0] = 0.0; EllipseFraction[1] = 0.0; ellipse.PerpendicularTangentFractions(ref Normal, ref EllipseFraction);