コード例 #1
0
        public void GenerateSegments()
        {
            double[][]  pts    = null;
            BezierCurve bezier = null;
            int         divNum;
            double      t;

            double[][] r, a = null;
            double     e;

            divNum = 4;
            pts    = new double[][]
            {
                new double[] { 0, 0, 0 },
                new double[] { 3, 4, 0 },
                new double[] { 6, 0, 0 },
            };
            bezier = new BezierCurve(pts);
            e      = 0.001;

            r = CurveDivider.GenerateSegments(bezier, divNum);
            a = new double[][]
            {
                new double[] { 0, 0, 0, 1.5, 1.5, 0 },
                new double[] { 1.5, 1.5, 0, 3, 2, 0 },
                new double[] { 3, 2, 0, 4.5, 1.5, 0 },
                new double[] { 4.5, 1.5, 0, 6, 0, 0 },
            };

            Assert.IsTrue(a.Length == r.Length);
            for (int i = 0; i < a.Length; i++)
            {
                Assert.IsTrue(a[i].SequenceEqual(r[i], e));
            }
        }
コード例 #2
0
 public static IEnumerable <XYZ> EquallyDivideByInterpolation(this Curve curve, int divideNum)
 {
     return(CurveDivider.GetDivider(curve.GetType()).EquallyDivide(curve, divideNum));
 }