另外,就算使用下下策最开始的时候定义几个足够大的数组(就暂时不考虑内存浪费了)也不行,比方开始Point[] myPoints=new Point[100](想后面把泛型里面数传会数组)当数组里面的数据点没有100个的时候,里面会有很多的(0,0),那样绘制的曲线后面就有一大堆没用的(0,0)直线。怎么办?怎么办?
问题应该已经描述清楚了,请教各位大侠,在教师节里,各位也当当好老师吧!
private void DrawCurves(Graphics grp, List<Point> pointList)
{
Point[] temps = new Point[pointList.Count];
for (int i = 0; i < pointList.Count; i++)
{
temps[i] = pointList[i];
}
grp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
grp.DrawCurve(new Pen(Color.Red, 2), temps);
grp.Dispose();
}
GraphPane myPan = new GraphPane();
PointPairList list = new PointPairList();
Random ran = new Random();
LineItem myCurve;
DataSet ds = new DataSet();
SqlConnection myConnection = null;
SqlCommand myCommand = null;
SqlDataAdapter adapt = null;
SqlDataReader reader = null;
public Form1()
{
InitializeComponent();
}
public string GetConnectString(string server, string database, string username, string password)
{
return "Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password;
}
public void Exc()
{
double x, y;
myConnection = new SqlConnection();
myConnection.ConnectionString = GetConnectString("192.168.0.101", "AMR", "sa", "123");
myCommand = new SqlCommand("select MSID,UpdateTime from Tab_BS_Dailyfile", myConnection);
myCommand.CommandType = CommandType.Text;
myConnection.Open();
adapt = new SqlDataAdapter();
try
{
//myCommand.ExecuteNonQuery();
reader = myCommand.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; )
{
y = double.Parse(reader[i++].ToString());
x = (double)new XDate(DateTime.Parse(reader[i++].ToString()));
list.Add(x, y);
}
}
}
catch (SqlException ex)
{
MessageBox.Show("插入错误!" + ex.Message.ToString());
}
myCommand.Clone();
myConnection.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
this.zedGraphControl1.GraphPane.Title.Text = "动态折线图";
this.zedGraphControl1.GraphPane.XAxis.Title.Text = "时间";
this.zedGraphControl1.GraphPane.X2Axis.Scale.FontSpec.Size = 28;
this.zedGraphControl1.GraphPane.YAxis.Title.Text = "数量";
this.zedGraphControl1.GraphPane.YAxis.Scale.FontSpec.Size = 8;
myPan.XAxis.Scale.IsVisible = true;
this.zedGraphControl1.GraphPane.XAxis.Type = ZedGraph.AxisType.DateAsOrdinal;
Exc();
DateTime dt = DateTime.Now;
myCurve = zedGraphControl1.GraphPane.AddCurve("My Curve",
list, Color.DarkGreen, SymbolType.None);
this.zedGraphControl1.AxisChange();
this.zedGraphControl1.Refresh();
}
/// <summary>
/// 动起来
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
zedGraphControl1.GraphPane.XAxis.Scale.MaxAuto = true;
double x = (double)new XDate(DateTime.Now);
double y = ran.NextDouble();
list.Add(x, y);//改成你数据库的数据就可以了
list.RemoveAt(0);
this.zedGraphControl1.AxisChange();
this.zedGraphControl1.Refresh();
}
问题来源 最近为了公司界面的美化,想将原来的单纯曲线图绘制变成曲线面积图。功能需求 1.通过一系列的点,绘制出曲线面积图或者曲线图。 2.能够实现实时界面刷新。 3.曲线图里面的很多属性都能自定义。需求分析 ...
效果如图所示: 以下是代码: [c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?...public class Curve { //picture Bitmap retbit = new Bitmap(800, 600);
C# 使用 GDI+ 画图 最近做一个微信公众号服务,有一些简单的图片处理功能。主要就是用户在页面操作,前端做一些立刻显示的效果,然后提交保存时后端真正修改原图。我们的后端是ASP.NET,也就是C#语言了,C#...
2019独角兽企业重金招聘Python工程师标准>>> ...
GDI+是C#绘图的基本工具,GDI+可以很方便的绘制圆。 1、获得画布 Graphics g = pictureBox1.CreateGraphics(); 2、设置画刷 Brush brush = new SolidBrush(pColors[i]); 3、绘制图形 g.FillEllipse(brush, ...
给自己单位开发的应用程序,里面有个功能是使用C#中的GDI+功能开发的在固定区域显示指定内容。 最初实现起来很简单,因为显示内容的区域大小是固定的,要显示的内容的字体和字号也是固定的,直接使用...
using System;using System.IO;//用于文件存取 using ...//提供画GDI+图形的基本功能 using System.Drawing.Text;//提供画GDI+图形的高级功能 using System.Drawing.Drawing2D;//提供画高级二维,矢量图形功能 u...
介绍如何使用C#GDI+绘制多重黄金矩形
主要介绍了C#使用GDI画圆的方法,涉及C#使用GDI绘图的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
用鼠标绘制直线、矩形、椭圆,填充图形。 旋转,平移、缩放图片
3.使用Graphics对象的方法进行图像绘制、文本显示等在有了画布、画笔或画刷之后,只需要调用Graphics对象的各种绘图方法进行图形的绘制,或者调用DrawString()方法显示指定的文本。4.释放Graphics对象、绘图工具等...
这两天有兴趣研究了一下winfor gdi+知识,先是做了个动态绘制的...1.因为是动态绘制曲线,所以首先要在load函数中用 到Timer,这个类要引用System.Timers System.Timers.Timer aTimer2 = new System.Timers.Timer();
用C#代码画圆的时候不知大家遇到没有遇到过这样的问题,就是画过圆以后,矩形的四角轮廓还是存在的,让人感觉不够完美,就如下图所示: 我画的这个是基于自定义控件的,声明类以后继承Control类,然后在这个...
在.NET中使用GDI+构建三维直方图 2004-12-18 18:10:57 随着社会的发展、科学的进步,地理信息系统(GIS)技术在社会各个领域中的应用越来越广泛。其中专题图在地理信息系统应用中具有非常重要的作用、专题图的应用...
这周在用GDI+实现图片的动画效果,起初每画一帧都在30-40ms左右,动画效果自然不能令人满意。 困惑了良久,后面在高人的指点下,效率有了显著地提高,最主要是清楚了时间都花在了那里,优化起来也就方便很多。 ...
创建图表是最常见的图形任务。ASP.NET Chat 控件提供了众多的图表类型和配置选项。对于 ASP.NET 3.5 SP1,Chart 控件可以下载使用,4.0 中已经包括了。 Chart 控件有众多不同特性及选项,这里不可能全面讲述。...
private void button_DrawCoordinate_Click(object sender, EventArgs e) //绘制坐标系 { Graphics g = CreateGraphics(); Pen m_pen = new Pen(Color.Black,2); Pen m_pen1 = new Pen(Color.FromArgb(101, 189, 101...
我找到一个解决的方法啦:通过位图来转换 //wRatio hRatio分别为Width和Height调整的百分比(%) void ResizePicture(LPCWSTR lpSrcFile,LPCWSTR lpDstFile,int wRatio,int hRatio) { ...
在实际项目中我们经常需要绘制一些实时的数据图片,比如当前各公司的用水量、用电量还有播放声音视频时实时显示当前的声频等等,在我们最熟悉的任务管理器也有这么一个功能,用来表示当前CPU的使用频率,最近笔者...
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇...分享知识,造福人民,实现我们中华民族伟大复兴! ... 用GDI+使文字轻松旋
graphics类 graphics类的命名空间为:System.Drawing。程序集为System.Drawing(在 system.drawing.dll中)。 -------------graphics属性及说明 ---------graphics方法及说明
C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠一...
GDI+是GDI的扩展,其继承了GDI的有点并在其基础上进行了改进,包括增加了一些GDI无法绘制的图形函数,同时GDI+重新设计了编程模型,使开发图形程序更加方便。作为图形设备接口的GDI+使得应用程序开发人员在输出屏幕...
using System.Drawing;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GraphicsImage(); } public void Gra
UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也 不能算是好程序。UI编程体现在两个方面,一是设计精美的...
使用GDI+绘进度条的方式多种多样,可以封装一个UserControl,也可以直接使用一个控件来绘制(Label、Image、Panel等),甚至可以直接在winForm上画一个,关键代码没几行(这里是一个量杯的进度条为例): ...
如果我们使用过GDI+绘图,那么理解GDI绘图就很容易,不论在GDI还是GDI+中绘图,都需要一个绘图的“画板”,如果没有这个“画板”那么我们所绘制的图就没有地方承载,自然也就不能显示出来给人看见。 GDI+的绘图画板...
一、绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面重新刷新一次以维持窗口正常显示。刷新过程中会导致所有图元重新绘制,而各个...
这些年我收集的GDI+代码2 点击RSS订阅查看大图 这些年在工作中有空的时候经常拿VS出来画个图玩玩,还是蛮有意思的事情。下面我们就来看看用GDI+是如何实现验证码功能的吧。 首先,我们先来看看如何在...
优质简历模板,目前最前全的模板收藏,需要换工作的小伙伴们可以试试