C#怎么绘制动态曲线图?

作者&投稿:钟震 (若有异议请与网页底部的电邮联系)
如何实现C#绘制动态实时的曲线图~

1.用JS更好实现
option = {
legend: {
data:['高度(km)与气温(°C)变化关系']
},
tooltip: {
trigger: 'axis',
formatter: "Temperature : {b}km : {c}°C"
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
axisLabel: {
formatter: '{value} °C'
}
},
yAxis: {
type: 'category',
axisLine: {onZero: false},
axisLabel: {
formatter: '{value} km'
},
boundaryGap: false,
data: ['0', '10', '20', '30', '40', '50', '60', '70', '80']
},
series: [
{
name: '高度(km)与气温(°C)变化关系',
type: 'line',
smooth: true,
lineStyle: {
normal: {
width: 3,
shadowColor: 'rgba(0,0,0,0.4)',
shadowBlur: 10,
shadowOffsetY: 10
}
},
data:[15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5]
}
]
};


第一用第三方控件,可以实现Winfrom 图标控件里面有这个,可以实现
第二 用GDI+绘制 需自己的写代码和实现

下面的说明是假设你会GDI绘图:1、要分析出曲线的函数公式,就比如y = sin(x)这种。2、然后因为GDI并没有绘制任意二维函数的功能,而曲线本身实质上是有很多线段构成的,因此你要决定一个线段水平间距阀值,如float j = 0.3f;3、根据函数,每带入一个x,可以得到相应的y值, 从需要的i = (x最小值)一直到i = (x的最大值),进行循环,每次i+=j,循环内部就调用函数,获取f(x)和f(x+ j)的2个值,利用这2个值,得到2个端点PointF pt1 = new PointF(x,f(x)),PointF pt2= new PointF(x + j,f(x + j)),利用GDI绘制线段。 总结:绘制曲线就是利用阀值对曲线进行拆分,分为一段段细小的线段,然后用GDI的方法绘制这些线段,动态或者不动态并不重要,关键是更新这个曲线函数本身,可以还是用老办法去画,只是擦了重画而已。

下面的说明是假设会GDI绘图:
1、要分析出曲线的函数公式,就比如y = sin(x)这种。
2、然后因为GDI并没有绘制任意二维函数的功能,而曲线本身实质上是有很多线段构成的,因此你要决定一个线段水平间距阀值,如float j = 0.3f;3、根据函数,每带入一个x,可以得到相应的y值, 从需要的i = (x最小值)一直到i = (x的最大值),进行循环,每次i+=j,循环内部就调用函数,获取f(x)和f(x+ j)的2个值,利用这2个值,得到2个端点PointF pt1 = new PointF(x,f(x)),PointF pt2= new PointF(x + j,f(x + j)),利用GDI绘制线段。

总结:绘制曲线就是利用阀值对曲线进行拆分,分为一段段细小的线段,然后用GDI的方法绘制这些线段,动态或者不动态并不重要,关键是更新这个曲线函数本身,可以还是用老办法去画,只是擦了重画而已。

绘了擦除,然后再绘,就能形成动画效果了,具体的效果怎么样,就要看你自己的控制代码了,但原理都是这样


应城市15169398163: c#怎么画实时动态曲线 -
亥进依洁: 第一用第三方控件,可以实现Winfrom 图标控件里面有这个,可以实现 第二 用GDI+绘制 需自己的写代码和实现

应城市15169398163: 如何在C#中用GDI+动态的绘制曲线 -
亥进依洁: 如题,在GDI+中利用多点绘制曲线折线一般用DrawCurve(Pen, Point[])和DrawLines(Pen, Point[])之类的函数,可是这两个函数的第二个参数都要求是纯Point[]数组类型,在绘制动态曲线的时候,显然是要等到程序运行之后才能确定数据,并且数组里的个数也一直在变(第一秒钟有两个点,第二秒钟有三个点,以此类推的增加).我的想法自然是先定义动态数组 List

应城市15169398163: 我现在要实现:用C#动态实时的画出曲线图,横坐标是时间,纵坐标可以是随机数,曲线是不断动态生成的.
亥进依洁: 直接使用微软的MSchart. VS2008需要安装插件工具. VS2010自带就有. 拖入工具,后台绑定,指定类型为曲线图.网上很多这工具的使用手册 很简单. 如果要自己画.有点复杂.不过也有代码要找找.

应城市15169398163: 如何实现C#绘制动态实时的曲线图 -
亥进依洁: 1.用JS更好实现 option = { legend: { data:['高度(km)与气温(°C)变化关系'] }, tooltip: { trigger: 'axis', formatter: "Temperature : <br/>{b}km : {c}°C" }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', ...

应城市15169398163: C#如何制作winform动态曲线图
亥进依洁: 下个微软的chart控件,装好后引到程序中,属性里面设置,就和datagrid差不多,看看就会了

应城市15169398163: C#怎么绘制动态曲线图? -
亥进依洁: 下面的说明是假设会GDI绘图: 1、要分析出曲线的函数公式,就比如y = sin(x)这种. 2、然后因为GDI并没有绘制任意二维函数的功能,而曲线本身实质上是有很多线段构成的,因此你要决定一个线段水平间距阀值,如float j = 0.3f;3、根据函数...

应城市15169398163: C#怎么绘制动态曲线图?
亥进依洁: 绘了擦除,然后再绘,就能形成动画效果了,具体的效果怎么样,就要看你自己的控制代码了,但原理都是这样

应城市15169398163: C#怎么绘制曲线图 -
亥进依洁: 先生成画板Bitmap bitmap=new Bitmap(); 然后定义画布Graph g=new Graph(); 然后是工具,画刷brush,画笔pen 定义完以后用在画布的对象g.XX自己找方法,rectangle是矩形,line是直线 大概思路是先画坐标轴(画直线),然后柱形...

应城市15169398163: C#语言、、在winform中做一个实时动态显示的曲线图,用什么控件? -
亥进依洁: 如果要求较多,用zedgraph试试,如果曲线比较简单,也可以用gdi画出来(百度一下c# 实时曲线就能找到示例)

应城市15169398163: 请教C#中如何在WinForm中画曲线图 -
亥进依洁: 我觉得不应该期望MsChart控件自动帮你做,而且通过你自己的逻辑来控制图表显示的图形.比如你一开始是添加精度为分钟的数据,当图上的点超过一定数量时,就清空图表,开始添加小时为精度的数据.至于每24小时清空一次的话,可以判断图形上的点数,也可以判断时间间隔.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网