2013-05-06 51 views
0

我正在创建一个自定义形状,准确的六角形。我已经画他们周围中心点如下:绕过中心位置,我怎样才能跳过中线?

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 

,其结果是:

enter image description here

的这里的问题是,它吸引了来自其centerposition到第一个弯道线。有没有办法可以跳过那条线?

+0

您的收集点可能不会导致问题。你已经在周边正确导航。问题很可能在您的代码中的其他地方。如果问题出在您的细分收藏中,我们会在细分收藏中看到“0,0”,但我们不会。我的猜测是,无论使用这些段进行绘制,都是从不在您的段列表中的点开始,即点0,0。 – ChrisCM 2013-05-06 19:38:04

回答

1

虽然你的代码片段没有显示它,但你应该将此PathSegmentCollection放置在具有StartPoint属性的PathFigure中。您可能需要这也设置为

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

,一旦你定义:起点,你只需要最后六分在PathSegmentCollection,如:起点发生在第一点的作用。