public void Area_VertexVertexBulge() { var vertex0 = new Vertex(0, 2); var vertex1 = new Vertex(2, 2); const double bulgeValue = -0.5; var testArc = new GeoArc(vertex0, vertex1, bulgeValue); Assert.IsTrue(Math.Abs(testArc.Area - 0.6989) < GeoMath.Tolerance); }
public void Build3VTests() { var vertex0 = new Vertex(0, 2); var vertex1 = new Vertex(1, 2.5); var vertex2 = new Vertex(2, 2); var testArc = new GeoArc(vertex0, vertex1, vertex2); Assert.IsTrue(Math.Abs(testArc.CenterVertex.X - 1) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.CenterVertex.Y - 1.25) < GeoMath.Tolerance); }
public void EndAngleTest_VertexVertexBulge() { var vertex0 = new Vertex(0, 2); var vertex1 = new Vertex(2, 2); const double bulgeValue = -0.5; var testArc = new GeoArc(vertex0, vertex1, bulgeValue); Assert.IsTrue(Math.Abs( testArc.EndAngle - GeoMath.DegToRad(36.8699)) < GeoMath.Tolerance); }
public void Area_CaarTest() { var centerVertex = new Vertex(1.0, 1.25); var startAngle = GeoMath.DegToRad(36.8699); var endAngle = GeoMath.DegToRad(143.1301); const double radius = 1.25; var testArc = new GeoArc(centerVertex, startAngle, endAngle, radius); Assert.IsTrue(Math.Abs(testArc.Area - 0.6989) < GeoMath.Tolerance); }
public void BulgeValue_CaarTest() { var centerVertex = new Vertex(1.0, 1.25); var startAngle = GeoMath.DegToRad(36.8699); var endAngle = GeoMath.DegToRad(143.1301); var radius = 1.25; var testArc = new GeoArc(centerVertex, startAngle, endAngle, radius); Assert.IsTrue(Math.Abs(testArc.BulgeValue - (0.5)) < GeoMath.Tolerance); }
public void MiddleVertexTest() { var vertex0 = new Vertex(0, 2); var vertex1 = new Vertex(2, 2); const double bulgeValue = -0.5; var testArc = new GeoArc(vertex0, vertex1, bulgeValue); Assert.IsTrue(Math.Abs(testArc.MiddleVertex.X - 1) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.MiddleVertex.Y - 2.5) < GeoMath.Tolerance); }
public void LengthTest_LengthShouldBe5p05832() { var vertex0 = new Vertex(13, 3.5); var vertex1 = new Vertex(13, 0); var bulgeValue = Math.Tan(GeoMath.DegToRad(164) / 4); var testArc = new GeoArc(vertex0, vertex1, bulgeValue); Debug.WriteLine($"The Total length of the Arc is {testArc.Length}"); Assert.IsTrue(Math.Abs(testArc.Length - 5.05832) < GeoMath.Tolerance); }
// The GeoArc Backing Field /// <inheritdoc /> /// <summary> /// The <see cref="T:Dxflib.Entities.CircularArcBuffer" /> constructor /// for the Arc Entity /// </summary> /// <param name="ab">The <see cref="T:Dxflib.Entities.CircularArcBuffer" /></param> public CircularArc(CircularArcBuffer ab) : base(ab) { EntityType = ab.EntityType; GeometricArc = new GeoArc( new Vertex(ab.CenterPointX, ab.CenterPointY, ab.CenterPointZ), GeoMath.DegToRad(ab.StartAngle), GeoMath.DegToRad(ab.EndAngle), ab.Radius ); Thickness = ab.Thickness; }
public void EndAngle_CaarTest_Changing() { var centerVertex = new Vertex(1.0, 1.25); var startAngle = GeoMath.DegToRad(36.8699); var endAngle = GeoMath.DegToRad(143.1301); var radius = 1.25; var testArc = new GeoArc(centerVertex, startAngle, endAngle, radius); testArc.EndAngle = GeoMath.DegToRad(200); Assert.IsTrue(Math.Abs(testArc.Vertex1.X - -0.1746) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.Vertex1.Y - 0.8225) < GeoMath.Tolerance); }
public void StartAngle_CaarTest_Changing() { var centerVertex = new Vertex(1.0, 1.25); var startAngle = GeoMath.DegToRad(36.8699); var endAngle = GeoMath.DegToRad(143.1301); var radius = 1.25; var testArc = new GeoArc(centerVertex, startAngle, endAngle, radius); testArc.StartAngle = GeoMath.DegToRad(50); Assert.IsTrue(Math.Abs(testArc.Vertex0.X - 1.8035) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.Vertex0.Y - 2.2076) < GeoMath.Tolerance); }
public void Vertex0AndVertex1_CaarTest() { var centerVertex = new Vertex(1.0, 1.25); var startAngle = GeoMath.DegToRad(36.8699); var endAngle = GeoMath.DegToRad(143.1301); var radius = 1.25; var testArc = new GeoArc(centerVertex, startAngle, endAngle, radius); // Starting Vertex Assert.IsTrue(Math.Abs(testArc.Vertex0.X - 2) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.Vertex0.Y - 2) < GeoMath.Tolerance); // Ending Vertex Assert.IsTrue(Math.Abs(testArc.Vertex1.X) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(testArc.Vertex1.Y - 2) < GeoMath.Tolerance); }
public void GenericGeoPolylineTest_1Arc() { // Line 0 var v0 = new Vertex(3.5, 0); var v1 = new Vertex(6, 0); var l0 = new GeoLine(v0, v1); Assert.IsTrue(Math.Abs(l0.Length - 2.5) < GeoMath.Tolerance); // Line 1 var v2 = new Vertex(6, 2.5); var l1 = new GeoLine(v1, v2); Assert.IsTrue(Math.Abs(l1.Length - 2.5) < GeoMath.Tolerance); // Arc var centerPoint = new Vertex(4.75, 1.75); var startAngle = GeoMath.DegToRad(30.964); var endAngle = GeoMath.DegToRad(149.036); const double radius = 1.4577; var arc0 = new GeoArc(centerPoint, startAngle, endAngle, radius); Assert.IsTrue(Math.Abs(arc0.Length - 3.0040) < GeoMath.Tolerance); // Line 2 var v3 = new Vertex(3.5, 2.5); var l2 = new GeoLine(v3, v0); Assert.IsTrue(Math.Abs(l2.Length - 2.5) < GeoMath.Tolerance); // GeoPolyline var geoPolyline = new GeoPolyline(); // Initialized // Adding sections to the GeoPolyline geoPolyline.Add(l0); geoPolyline.Add(l1); geoPolyline.Add(arc0); geoPolyline.Add(l2); // Assert Assert.IsTrue(Math.Abs(geoPolyline.Length - 10.5040) < GeoMath.Tolerance); Assert.IsTrue(Math.Abs(geoPolyline.Area - 7.5021) < GeoMath.Tolerance); }