当前位置: 首页>>代码示例>>C#>>正文


C# Segment.GetSplitSegmentForVertecies方法代码示例

本文整理汇总了C#中Segment.GetSplitSegmentForVertecies方法的典型用法代码示例。如果您正苦于以下问题:C# Segment.GetSplitSegmentForVertecies方法的具体用法?C# Segment.GetSplitSegmentForVertecies怎么用?C# Segment.GetSplitSegmentForVertecies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Segment的用法示例。


在下文中一共展示了Segment.GetSplitSegmentForVertecies方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MakeCloseSegmentsMergable

        public void MakeCloseSegmentsMergable()
        {
            // check that we can cut up a single segment
            {
                List<Segment> segmentsControl = Segment.ConvertPathToSegments(new List<Point3>()
                {
                    new Point3(0, 0),
                    new Point3(2500, 0),
                    new Point3(5000, 0),
                }, false);

                List<Point3> cuts = new List<Point3>()
                {
                    new Point3(2500, 0),
                    new Point3(2500, 401),
                };

                Segment segmentToCut = new Segment()
                {
                    Start = new Point3(0, 0),
                    End = new Point3(5000, 0),
                };

                List<Segment> segmentsTest = segmentToCut.GetSplitSegmentForVertecies(cuts, 400);
                Assert.IsTrue(segmentsControl.Count == segmentsTest.Count);
                for(int i=0; i<segmentsTest.Count; i++)
                {
                    Assert.IsTrue(segmentsTest[i] == segmentsControl[i]);
                }
            }

            // A path that needs to have points inserted to do the correct thing
            {
                // |\      /|                     |\      /|
                // | \s___/ |   				  | \____/ |
                // |________|	create points ->  |_.____._|

                int travelSpeed = 50;
                int retractionMinimumDistance = 20;
                GCodePlanner planner = new GCodePlanner(new GCodeExport(), travelSpeed, retractionMinimumDistance);
                List<Point3> perimeter = new List<Point3>()
                {
                    new Point3(5000, 50),
                    new Point3(0, 10000),
                    new Point3(0, 0),
                    new Point3(15000, 0),
                    new Point3(15000, 10000),
                    new Point3(10000, 50),
                };
                Assert.IsTrue(perimeter.Count == 6);
                List<Point3> correctedPath = planner.MakeCloseSegmentsMergable(perimeter, 400 / 4);
                Assert.IsTrue(correctedPath.Count == 8);
            }

            // Make sure we work correctly when splitting the closing segment.
            {
                // |\      /|                     |\      /|
                // | \____/ |   				  | \____/ |
                // |_______s|	create points ->  |_.____._|

                int travelSpeed = 50;
                int retractionMinimumDistance = 20;
                GCodePlanner planner = new GCodePlanner(new GCodeExport(), travelSpeed, retractionMinimumDistance);
                List<Point3> perimeter = new List<Point3>()
                {
                    new Point3(15000, 0),
                    new Point3(15000, 10000),
                    new Point3(10000, 50),
                    new Point3(5000, 50),
                    new Point3(0, 10000),
                    new Point3(0, 0),
                };
                Assert.IsTrue(perimeter.Count == 6);
                List<Point3> correctedPath = planner.MakeCloseSegmentsMergable(perimeter, 400 / 4);
                Assert.IsTrue(correctedPath.Count == 8);
            }
        }
开发者ID:yushuiqiang,项目名称:MatterSlice,代码行数:77,代码来源:GCodePlannerTests.cs


注:本文中的Segment.GetSplitSegmentForVertecies方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。