说明:这个程序是我在一个学长做的程序的基础上开发的,之前他将所有的语句都放在主函数里了,所以我决定修改这个程序,使他更能体现c 语言的结构特性.程序我已经编译过了,在tc和vc上都能运行.在tc中运行时要注意图形模式初始化中tc的路径,别的都没有什么问题.如果对我的程序有什么更好的想法,请发送邮件至:mailto:yzx_xue@163.com?subject=%u674E%u8428%u5165%u56FE.
程序的功能是:按方向键选择焦点框,按回车键显示焦点框内放大的波形(若焦点框在帮助栏,则回车可作为停止和启动键).空格键是停止和启动的,当按了空格之后,按键盘上的任何键(除了esc和方向键)都可以启动.在任何时候按s键,程序进入设置参数状态,若是在停止时设置参数,则设置完成后需按一次回车才能进行新的波形的显示.
/* lishrr.h */
/* lisajous */
/* data:06/09/2004 */
/*modifier dtat:30/04/2006 */
/*made by 傅得立*/
/*modifier by 杨忠学*/
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <dos.h>
#include <conio.h>
#define PI 3.1415926
#define VK_ENTER 13
#define VK_ESC 27
#define VK_UP 72
#define VK_DOWN 80
#define VK_RIGHT 77
#define VK_LEFT 75
#define VK_SET 115
#define VK_HELP 104
#define VK_SPACE 32
void initG(); /*图形模式初始化*/
void closeG();/*关闭图形模式*/
void set();/*设置参数*/
void help();/*打印帮助*/
void drawforce(int);/*画焦点矩形*/
void wavedelay();/*延时*/
void drawtimeline(int,int,int);/*画时基波形*/
void drawwave(int,int,int);/*华垂直波形*/
void drawLisajous(int,int,int);/*画李萨如图*/
void drawall();/*画所有图形*/
void clrall();/*擦屏*/
void change_t2();
double t,t2;
double x,y;
double x1,y1,x2,y2;
dou