C# 围绕中心位置进行路径选择时,如何从中心跳过直线?

C# 围绕中心位置进行路径选择时,如何从中心跳过直线?,c#,windows-phone-7,C#,Windows Phone 7,我正在创建一个自定义形状,确切地说是六边形。我围绕一个中心点绘制了它们,如下所示: PathSegmentCollection segmentCollection = new PathSegmentCollection(); segmentCollection.Add(new LineSegment() { Point = new Point(x + tileXDelta / 2, y + tileRadius / 2) }); // 1 segmentCollection.Add(ne

我正在创建一个自定义形状,确切地说是六边形。我围绕一个中心点绘制了它们,如下所示:

PathSegmentCollection segmentCollection = new PathSegmentCollection();
segmentCollection.Add(new LineSegment() { Point = new Point(x + tileXDelta / 2, y + tileRadius / 2) });     // 1
segmentCollection.Add(new LineSegment() { Point = new Point(x + tileXDelta / 2, y-tileRadius / 2) });       // 2
segmentCollection.Add(new LineSegment() { Point = new Point(x + 0, y-tileRadius) });                        // 3
segmentCollection.Add(new LineSegment() { Point = new Point(x-tileXDelta / 2, y-tileRadius / 2) });         // 4
segmentCollection.Add(new LineSegment() { Point = new Point(x - tileXDelta / 2, y + tileRadius / 2) });     // 5
segmentCollection.Add(new LineSegment() { Point = new Point(x + 0, y + tileRadius) });                      // 6
segmentCollection.Add(new LineSegment() { Point = new Point(x + tileXDelta / 2, y + tileRadius / 2) });     // 7
结果是:


这里的问题是,它从中心位置到第一个角点绘制了一条线。有什么方法可以跳过这一行吗?

尽管您认为snippet没有显示它,但您应该将此PathSegmentCollection放置在具有StartPoint属性的PathFigure中。您可能需要将此设置为

new Point(x + tileXDelta / 2, y + tileRadius / 2)

此外,一旦定义了起始点,您只需要PathSegmentCollection中的最后六个点,因为起始点扮演第一个点的角色。

您的点集合可能不会导致问题。你已经正确地在周围导航了。问题可能在代码的其他地方。如果问题发生在您的细分集合中,我们会在您的细分集合中看到“0,0”,但我们没有看到。我的猜测是,无论使用这些线段绘制什么,都是从线段列表中不存在的点开始的,即点0,0。