Image CreatePreviewImage(string r) { int width = 530; int startX = 10; int maxHeight = 145; int heightUnit; int histogramWidth = 20; int histogramSpace = 15; int bottomY = 30; heightUnit = (maxHeight - bottomY - 15) / r.Length; int height = 0; ArrayList squareArray = new ArrayList(); IGlyph glyph; glyph = new MyRectangle(startX,maxHeight - bottomY - 45,histogramWidth,45,Color.Gold,GlyphAppearance.Popup,"?"); squareArray.Add(glyph); for(int i=0;i<r.Length;i++) { height = GetHeight(r,i,heightUnit); glyph = new MyRectangle(startX + (i + 1)*(histogramWidth + histogramSpace),maxHeight - bottomY - height,histogramWidth,height,Color.HotPink,GlyphAppearance.Popup,r[i].ToString()); squareArray.Add(glyph); } squareLine = new SquareLine(1,1,1,squareArray); //最后初始化所有的迭代器 IIterator arrayIterator = squareLine.CreateIterator(); Bitmap bmp = new Bitmap(width,maxHeight); Graphics g = Graphics.FromImage(bmp); if(arrayIterator != null) { for(IIterator iterator = arrayIterator.First();!arrayIterator.IsDone();iterator = arrayIterator.Next()) { iterator.CurrentItem.Draw(g); } } return bmp; }
public override void InitGraph() { heightUnit = (maxHeight - bottomY - 15) / (status.High - status.Low + 1); int height = 0; ArrayList squareArray = new ArrayList(); IGlyph glyph; glyph = new MyRectangle(startX,maxHeight - bottomY - 100,histogramWidth,100,status.头元素背景色,status.图形外观,"?"); squareArray.Add(glyph); for(int i = 0;i < (status.High - status.Low + 1);i++) { height = GetHeight(status.R,i,heightUnit); glyph = new MyRectangle(startX + (i + 1)*(histogramWidth + histogramSpace),maxHeight - bottomY - height,histogramWidth,height,status.图形背景色,status.图形外观,status.R[i].ToString()); squareArray.Add(glyph); } squareLine = new SquareLine(1,1,1,squareArray); //最后初始化所有的迭代器 arrayIterator = squareLine.CreateIterator(); }