图像显示问题(100分)

  • 主题发起人 主题发起人 fuxiaojie
  • 开始时间 开始时间
F

fuxiaojie

Unregistered / Unconfirmed
GUEST, unregistred user!
本人正在做一个虚拟示波器,请问怎么实现波形显示的时候波形向左移动,而波形的刻度保持不变。
 
看到的效果的波形在移动,而屏幕不动
 
用teechart显示图表的时候新采集的数据永远在最右边,显示的需要,刻度会自动变小.
你的意思是不是只显示固定部分的数据?最右边有一个新数据,最左边就隐藏一个数据?
 
是的,就是teechart的那种效果,但是不能用teechart
 
你用的是什么啊?????
 
image1.Canvas
 
各位大哥帮帮忙
 
是画平移的正弦曲线吗?
 
也不一定,曲线是从采集卡得到的
 
用timer定时对image1.Canvas 重画
 
用两个画图板叠加试试。
 
怎么叠加?
 
2种方法实现:
1:重画的时候分别画数据刻度,数据文字和曲线。
在函数里控制Textout的数值文字。
2:在image1上重新建一个image2用来专门画坐标和曲线。
注意 transparent取true,以造成在一个画面的效果。
这就是图层。photoshop上常用的东西。
//form上放置一个timer ,一个image
动画效果就如:yuzk2005所说了。
你可以在全局变量里声明一个静态数组。

var
subway:array [0..10] of Tpoint;
{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
image1.Canvas.Brush.Color:=clwhite;
image1.Canvas.FillRect(image1.ClientRect);
//擦除旧图象
for i:=10 downto 0 do
begin
if i=0 then
begin

subway.X:=1+random(20)+random(50);
subway.Y:=2+random(20)+random(20);
break;
end;
subway.X:=subway[i-1].X;
subway.Y:=subway[i-1].Y;
end;
//新数据入队

for i:=0 to 10 do
begin
if i=0 then
begin
image1.Canvas.MoveTo(subway.X,subway.Y);
continue;
end;
image1.Canvas.LineTo (subway.X,subway.Y);
end;
//画出新图象,完成动画效果
end;
哎,都有人回答了。。。。
 
还要使用双缓存技术,避免图象出现闪动。
 
<双缓存技术>这种技术如何用啊?
数据怎么可以从采集卡采到?
采病人的心跳还是电流数据?
 
后退
顶部