GDI+高手请进(急,急,急)!!!

sdl2005lyx 2006-08-29 10:32:08
本人要做一个实时x、y点阵实时显示控件。 就是在一个容器用定时器不断画线,每隔一秒向右移动一段距离,等当前容器画满后,能不断向右移动,看到最新画出的直线.最好有滚动条,以便定时器停止后,可以回滚看到以前画的线。
各位大侠,有什么好的办法,要是有实际的例子最好了!!

...全文
358 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2006-08-31
  • 打赏
  • 举报
回复
谢谢,这下豁然开朗了。!!
Knight94 2006-08-31
  • 打赏
  • 举报
回复
其实很简单,图型移动,就是一个画板删除前面的,然后补齐后面的,所造成的错觉。

那么第一部分,就是用原来的图删除前面部分后的数据来填充新图;
第二部分,就是画入新的数据,也就是补齐后面的。

gImage.DrawImage(bitGraph,
new Rectangle(0, 0, nWidth - CLIP_WIDTH, nHeight)/*新图前面部分,不包括后面新画的部分*/,
new Rectangle(CLIP_WIDTH, 0, nWidth - CLIP_WIDTH, nHeight)/*旧图后面部分,去除前面部分*/,
GraphicsUnit.Pixel);

这句话的意思,相当于用旧图后面部分去填充新图前面部分,例如每次移动20个像素
相当于旧图从(20,0)这个起点,到后面整个区域,整体向前平移了20个像素。
sdl2005lyx 2006-08-31
  • 打赏
  • 举报
回复
Knight94(愚翁):
我几行代码,能否解释一下:
gImage.DrawImage(bitGraph,
new Rectangle(0, 0, nWidth - CLIP_WIDTH, nHeight),
new Rectangle(CLIP_WIDTH, 0, nWidth - CLIP_WIDTH, nHeight),
GraphicsUnit.Pixel);

gImage.DrawLine(new Pen(Color.Red,1.0f),
new Point(nWidth - CLIP_WIDTH, nStartY),
new Point(nWidth - 1, nEndY));

上面的代码中,nWidth ,CLIP_WIDTH运行时都是固定值,图形是如何移动的呢???
sdl2005lyx 2006-08-31
  • 打赏
  • 举报
回复
Knight94(愚翁):
不好意思,还有一个问题:
我想要控制画线的显示和隐藏,你是通过移动图块达到目的,从而无法记录真正坐标点,
怎么办呢?
Knight94 2006-08-30
  • 打赏
  • 举报
回复
to
那用滚动条的时候还能用你那篇文章里的double buffer防止闪烁么?
怎么用那?

为什么不能用呢
double-buffer只是选用了Bitmap来替换直接处理picturebox。
那么bitmap本身也是可以被操作的。
wbzGatsby 2006-08-30
  • 打赏
  • 举报
回复
也就是所有画过的点都要记录下来?
那用滚动条的时候还能用你那篇文章里的double buffer防止闪烁么?
怎么用那?
tshark 2006-08-30
  • 打赏
  • 举报
回复
j加油啊,老板在催呢
Knight94 2006-08-30
  • 打赏
  • 举报
回复
to 也在做这方面的东西 问一下这个history 大致应该怎么做?

就是记录所画点的坐标。

如果水平间隔是固定的,只需要记录纵轴的坐标;
如果不是固定的,则需要在绝对坐标下记录(x,y)的值。

ps:展现成图案的时候,需要进行绝对坐标和相对坐标的转换。
ilove8 2006-08-30
  • 打赏
  • 举报
回复
up
wbzGatsby 2006-08-30
  • 打赏
  • 举报
回复
to Knight94(愚翁)
ref:
http://blog.csdn.net/Knight94/archive/2006/08/18/1094078.aspx
你在我的基础上加上history功能。

也在做这方面的东西 问一下这个history 大致应该怎么做?
wangwei155 2006-08-30
  • 打赏
  • 举报
回复
kason_j 2006-08-30
  • 打赏
  • 举报
回复
帮顶
sdl2005lyx 2006-08-30
  • 打赏
  • 举报
回复
谢谢各位,我的邮箱:sdl2002lyx@163.com
Knight94 2006-08-30
  • 打赏
  • 举报
回复
ref:
http://blog.csdn.net/Knight94/archive/2006/08/18/1094078.aspx

你在我的基础上加上history功能。
sdl2005lyx 2006-08-30
  • 打赏
  • 举报
回复
谢谢Knight94(愚翁) ,我正在用你的方法改造我的控件,等改造成功,就可以揭帖啦。。。。
kyle315 2006-08-29
  • 打赏
  • 举报
回复
我有一个,不过没有做滚动条,滚动条你可以修改一下自己加上,把邮箱留下,发给你。图形的参数可以自己设定,使用时传入一个数组即可。
sdl2005lyx 2006-08-29
  • 打赏
  • 举报
回复
没人理,自己顶一下:

如何实现动态折线的绘制,就是动态的获取坐标数据,然后连接起来。请问哪位大侠有着方面的源码,或者有这样的控件?!
老板要我交活了,着急啊!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧