public void TestCut_Special4() { var polyS = new List<VertexBase> { new Vertex(4, 8), new Vertex(9, 9), new Vertex(10, 3), new Vertex(5, 2), new Vertex(4, 8) }; var polyC = new List<VertexBase> { new Vertex(4, 8), new Vertex(7, 4), new Vertex(1, 1), new Vertex(4, 8) }; // 多边形同向情况 var result = Cut(polyS, polyC); Assert.True(result.Count == 1 && result[0].Count == 4 + 1); // 多边形不同向 polyS.Reverse(); result = Cut(polyS, polyC); Assert.True(result.Count == 1 && result[0].Count == 4 + 1); }
public void TestCut_Commom() { var polyS = new List<VertexBase> { new Vertex(2, 12), new Vertex(10, 1), new Vertex(12, 5), new Vertex(13, 0), new Vertex(6, -2), new Vertex(2, 12) }; var polyC = new List<VertexBase> { new Vertex(4, 8), new Vertex(12, 9), new Vertex(14, 1), new Vertex(2, 3), new Vertex(4, 8) }; // 多边形同向情况 var result = Cut(polyS, polyC); Assert.True(result.Count == 2 && result[0].Count == 5 + 1 && result[1].Count == 3 + 1); // 多边形不同向 polyS.Reverse(); result = Cut(polyS, polyC); Assert.True(result.Count == 2 && result[0].Count == 5 + 1 && result[1].Count == 3 + 1); }