用VB制作李萨如图形动态演示程序2010-01-02 comprg.com.cn 罗英茹1 引言李萨如图形是一个质点的运动轨迹
[1],该质点在两个垂直方向的分运动 都是简谐运动。李萨如图形是物理学的重要内容之一,在工程技术领域也有很重要的应用。利用李萨如 图形可以测量未知振动的频率和初相位,掌握李萨如图形的形成过程有很重要的意义。因而动态显示李 萨如可以深入理解其形成过程。2 李萨如图形的形成假定形成李萨如图形的两个简谐运 动,一个在X轴上,一个在Y轴上,


它们的运动方程为(假设它们的振幅相等):它们的合运动轨迹就是李萨如图形。为了能够形 象地描述李萨如图形的形成过程,一般是把X轴和Y轴上的简谐运动分别用旋转矢量图来描述,如图1所示 。由上式计算出不同时刻的质点的坐标(x,y),依次连接这些点,得到的图形就是李萨如图形。

图1 李萨如图形的 形成过程3 李萨如图形动态演示的制作原理为了动态演示李萨如图形的形成过程,需要 把描述两个简谐运动的旋转矢量的运动过程和它们的合运动过程动态地画出来。具体的做法是:(1)画出描述X、Y方向简谐运动的旋转矢量的参考图,分别由两条垂直的直线,一个圆构成;(2)通过计算,分别画出从圆心出发的代表X、Y方向简谐运动旋转矢量位置的直线;( 3)画出合运动的定位线,得到属于李萨如图形的点的坐标,如果是第一个点,则直接描点;否则与前一 点相连,得到质点的运动轨迹;(4)擦去两个旋转矢量和合运动定位线;(5)继续计 算下一点的坐标,再回到第2步重复进行;(6)直到暂停或终止程序运行。按照以上的 算法,用VB6.0编制程序
[2, 3]。运行程序,发现在擦去合运动的定位线的同时,把X、Y方 向简谐运动的旋转矢量图和李萨如图形也擦去了一部分。例如图1中的A、B、C、D和E点等都被擦去,经 过一段时间以后,X、Y方向简谐运动的旋转矢量图和李萨如图形都变成了虚线图,不再是一幅完整的图 形。为了得到良好的视觉效果,应该使上述被擦掉的部分能够及时补画上。对于X、Y方向简谐运 动的旋转矢量图,由于它是由规则的直线和圆画出的,因而再次重画相应的直线和圆即可。而李萨如图 形是不规则的,被擦去的点的坐标,当然可以通过计算的方法得到,但是从图1可以看出,这种计算是相 当复杂的,因为在一般情况下,很难准确判断李萨如图形中被擦去的是哪些点。为了解决这个问 题,笔者采取的办法是,在程序中引入两个数组,用这两个数组来依次记录计算得到的李萨如图形的点 的坐标(x,y)值,在擦去合成线以后,再次根据数组中的数据重新绘画被损坏的图形。