小弟遇到难题,恳请各位帮忙。谢谢!(关于一个函数图形的编码)(100分)

  • 主题发起人 心动痕迹
  • 开始时间

心动痕迹

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟现这个学期开了一门数据通信课程,今天老师布置了一道题目,
但我实在不懂得该如何实现,恳请各位帮忙,在此谢了!
题目:利用编码实现显示眼图。所谓的眼图是数据通信中关于信号波形的一个
专业术语,在此我们不必具体了解它。
其实也就是利用编码将某个函数图形显示出来,这个函数是:
h(t)=[sin(qt/b)]/(qt/b)*{cos(qt/b)/[(1-2q)/b]}
b为自取值,但 -q/2<=b<=q/2
其实函数虽然麻烦,但那不是关键,因为无须我们解决,要求的只是如何
表达出它的图形,谢谢各位了!
 
目的:在指定区域绘制 y=f(x) 函数曲线。

设绘图区域(Image1)的长、高分别为L,H(以像素为单位);
设图上X方向每个像素的宽度代表的时间增量为dt,图像最左边的t值为t0;
定义一个长度为L的浮点数组Ht,用于存放图像上每个点的座标;
计算座标值:
for i:=0 to L-1 do
Ht:=f(t0+i*dt);
遍历数组,找到数组元素的最大值和最小值——Hmax,Hmin;
用描点法绘制图形:
for i:=0 to L-1 do
Image1.Canvas.Pixels[i,Round((Ht-Hmin)*H/(Hmax-Hmin))]:=clRed;

上面只是绘制了一帧图形(t0<=t<t0+L*dt),要作出不断滚动的效果,只要增大t0并重绘
即可。
 
谢谢creation-zy,但是我还是不大明白,如果简单的话,
用delphi做了发给我呢?谢谢了!!!
lilihong7@yahoo.com.cn
 
唉,怎都没有反应?
 
接受答案了.
 
顶部