Ejemplo n.º 1
0
        public PolyCurveTests(ITestOutputHelper testOutput)
        {
            _testOutput = testOutput;
            int           degree = 3;
            List <Point3> pts    = new List <Point3>
            {
                new Point3(0, 5, 5),
                new Point3(0, 0, 0),
                new Point3(5, 0, 0),
                new Point3(5, 0, 5),
                new Point3(5, 5, 5),
                new Point3(5, 5, 0)
            };

            #region example
            // Initializes a polycurve from a curve a line and an arc.
            NurbsCurve curve = new NurbsCurve(pts, degree);
            Line       line  = new Line(new Point3(5, 5, 0), new Point3(5, 5, -2.5));
            Arc        arc   = Arc.ByStartEndDirection(new Point3(5, 5, -2.5), new Point3(10, 5, -5), new Vector3(0, 0, -1));

            List <NurbsBase> curves = new List <NurbsBase> {
                curve, line, arc
            };
            _polycurve = new PolyCurve(curves);
            #endregion
        }
Ejemplo n.º 2
0
        public void Initializes_An_Arc_By_Two_Points_And_A_Direction()
        {
            // Arrange
            Point3 pt1 = new Point3(5, 5, 5);
            Point3 pt2 = new Point3(10, 15, 10);
            Point3 dir = new Point3(3, 3, 0);

            // Act
            Arc arc = Arc.ByStartEndDirection(pt1, pt2, dir);

            // Assert
            arc.StartPoint.EpsilonEquals(pt1, 1e-6).Should().BeTrue();
            arc.EndPoint.EpsilonEquals(pt2, 1e-6).Should().BeTrue();
            arc.Radius.Should().BeApproximately(12.247449, GSharkMath.MaxTolerance);
        }
Ejemplo n.º 3
0
        public void It_Returns_A_Arc_Based_On_A_Start_And_An_End_Point_And_A_Direction()
        {
            // Arrange
            Point3  startPt        = new Point3(5, 5, 5);
            Point3  endPt          = new Point3(10, 15, 10);
            Vector3 dir            = new Vector3(3, 3, 0);
            double  radiusExpected = 12.247449;
            double  angleExpected  = GSharkMath.ToRadians(60);
            Point3  centerExpected = new Point3(0, 10, 15);

            // Act
            Arc arc = Arc.ByStartEndDirection(startPt, endPt, dir);

            // Assert
            arc.Angle.Should().BeApproximately(angleExpected, 1e-6);
            arc.Radius.Should().BeApproximately(radiusExpected, 1e-6);
            arc.Plane.Origin.EpsilonEquals(centerExpected, 1e-6).Should().BeTrue();
        }