2011-02-02 192 views
4

我正在使用ZedGraph控件,并希望用某种颜色填充图形函数的一侧,而用其他颜色填充另一侧。ZedGraph填充区域

PointPairList list1 = new PointPairList(); 
list1.Add(0, 4); 
list1.Add(4, 0); 
LineItem myCurve = myPane.AddCurve("y(n)", list1, Color.Red, SymbolType.Diamond); 

//This filling bottom side. 
myCurve.Line.Fill = new Fill(Color.White, Color.FromArgb(113, 255, 0, 0), 90F); 

//How to fill the top side? 
+1

你就不能添加一个填为整个图表的背景,然后第二个,就像你一样,为填写你的曲线?这应该够了吧。或者,也许你头脑上还有别的东西? – Gacek 2011-02-04 11:46:10

+0

其实我也喜欢你说的,但是我需要填充多条线交点(某些多边形)形成的区域,我可以在Zed图中填充一些多边形区域吗? – Sergey 2011-02-10 21:04:02

回答

5

我不是很清楚你在问什么 - 但希望下面会有所帮助。你在评论中说

我可以在Zedgraph中填充一些多边形区域吗?

因此,这里是在

enter image description here

希望如何...

var zed = new ZedGraph.ZedGraphControl { Dock = System.Windows.Forms.DockStyle.Fill }; 

var poly = new ZedGraph.PolyObj 
{ 
    Points = new[] 
    { 
     new ZedGraph.PointD(0, 0), 
     new ZedGraph.PointD(0.5, 1), 
     new ZedGraph.PointD(1, 0.5), 
     new ZedGraph.PointD(0, 0) 
    }, 
    Fill = new ZedGraph.Fill(Color.Blue), 
    ZOrder = ZedGraph.ZOrder.E_BehindCurves 
}; 

var poly1 = new ZedGraph.PolyObj 
{ 
    Points = new[] 
    { 
     new ZedGraph.PointD(1, 0), 
     new ZedGraph.PointD(0.25, 1), 
     new ZedGraph.PointD(0.5, 0), 
     new ZedGraph.PointD(1, 0) 
    }, 
    Fill = new ZedGraph.Fill(Color.Red), 
    ZOrder = ZedGraph.ZOrder.E_BehindCurves 
}; 

zed.GraphPane.AddCurve("Line", new[] { 0.0, 1.0 }, new[] { 0.0, 1.0 }, Color.Green); 
zed.GraphPane.GraphObjList.Add(poly1); 
zed.GraphPane.GraphObjList.Add(poly); 

结果这将指向你在正确的方向!

(通过http://converter.telerik.com/Code in VB as requested - !没有VB代码的工作,甚至编译的机制保障)