当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Kbuilder.cs GIVE ME K

ASP.NET
妙用Cache检验用户是否重复登陆
ASP.NET 2.0–善用DataSourceMode属性
在ASP.NET AJAX中别使用mode="Legacy"
探讨ASP.NET 2.0的Web控件改进之概述
asp.net创建文件夹的IO类的问题
asp.net 实现购物车详细代码
ASP.NET2.0+SQL Server2005构建多层应用
用ICallbackEventHandler实现客户端与服务器端异步
ASP.NET页面的重定向
抢先试用ASP.NET 2.0中的新型安全控件
ASP.NET中Cookie编程的基础知识
Asp.net导航控件真的值得用吗?
ASP.NET中上传文件到数据库
cs及前身asp.net forums的调试
ASP.NET2.0 遍历文件夹下所有图片
用ASP.NET创建自定义文本框
ASP.NET中设计带事件定制控件
ASP.NET+ORACLE添加记录让ID自动增量
C#+ASP.NET开发基于Web的RSS阅读器
ASP.NET2.0导航功能之配置会员和角色

ASP.NET 中的 Kbuilder.cs GIVE ME K


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 67 ::
收藏到网摘: n/a


using System;using System.Collections;using System.Drawing;using System.Drawing.Imaging;
namespace Ktest{ /// /// Kbuilder 的摘要说明。 /// public class Kbuilder { private int bottomMarge=10; private int leftMarge=20; /// /// 默认宽度 /// private int m_width=640; /// /// 高度默认400像素 /// private int m_height=480; /// /// 默认显示30天数据 /// private int m_lineCount=30; /// /// 默认显示的最高价50元 /// private int m_maxPrice=50; /// /// 存放价格表 /// private ArrayList m_prices; public Kbuilder() { m_prices=new ArrayList(); } /// /// 宽度 /// public int Width { get { return m_width; } set { m_width=value; } } /// /// 高度 /// public int Height { get { return m_height; } set { m_height=value; } } /// /// 显示线数 /// public int LineCount { get { return m_lineCount; } set { m_lineCount=value; } } public int MaxPrice { get { return m_maxPrice; } set { m_maxPrice=value; } } /// /// 添加价格 /// ///

开盘价
///
最高价
///
最低价
///
收盘价
public void Add(double openPrice,double maxPrice,double minPrice,double closePrice) { Ktest.Price a=new Price(); a.Open=openPrice; a.Max=maxPrice; a.Min=minPrice; a.Close=closePrice; if (m_prices.Count>=m_lineCount) { m_prices.RemoveAt(0); } m_prices.Add(a); } /// /// 画图 /// /// public Bitmap GetImage() { Bitmap image = new Bitmap(m_width,m_height); Graphics g = Graphics.FromImage(image); Pen black1=new Pen(Color.Black,1); Pen black2=new Pen(Color.Black,2); Pen red=new Pen(Color.Red,1);
Point o=new Point(leftMarge,m_height-bottomMarge); Point y=new Point(leftMarge,0); Point x=new Point(m_width,m_height-bottomMarge); Font font=new Font("宋体",8); int hStep=(m_height-bottomMarge)/m_maxPrice; int wStep=(m_width-leftMarge)/m_lineCount;
g.Clear(Color.White); g.DrawLine(black2,y,o); g.DrawLine(black2,o,x); for(int i=1;i<=m_maxPrice;i++) { g.DrawString(i.ToString(),font,Brushes.Black,1,m_height-bottomMarge-hStep*i); } for(int i=1;i<=m_lineCount;i++) { g.DrawString(i.ToString(),font,Brushes.Black,wStep*i,m_height-bottomMarge+1); } g.Save(); int iCount=0; foreach(Price p in m_prices) { int x1,x2,x3,y1,y2,y3,y4; x1=leftMarge+iCount*wStep+3; x2=x1-3+(int)wStep/2; x3=(leftMarge+wStep*iCount++)-2; y1=m_height-bottomMarge-(int)p.Max*hStep; y4=m_height-bottomMarge-(int)p.Min*hStep; System.Drawing.Brush brush; Pen curPen; if (p.Positive) { curPen=red; brush=System.Drawing.Brushes.Red; y3=m_height-bottomMarge-(int)p.Open*hStep; y2=m_height-bottomMarge-(int)p.Close*hStep; } else { curPen=black1; brush=System.Drawing.Brushes.Black; y2=m_height-bottomMarge-(int)p.Open*hStep; y3=m_height-bottomMarge-(int)p.Close*hStep; } g.FillRectangle(brush,x1,y2,wStep-5,y3-y2); g.DrawLine(curPen,x2,y1,x2,y4); } return image; } }}