中易网

C语言怎么编写正弦波

答案:2  悬赏:50  
解决时间 2021-02-13 11:29
C语言怎么编写正弦波
最佳答案
#include
#include
#include
#define PI 3.14159

void main()
{
double x,y,dt=1.0/2/PI*0.01;
int sx,sy,i;
int gdrver=VGA, gmode=2;
initgraph(&gdrver,&gmode,"d:\\bc4\\bgi");
cleardevice();
setbkcolor(BLACK);
setcolor(WHITE);

x=dt; y=sin(dt);
sx=(int)(640.0*dt); sy=(int)(240.0-480.0*y);
line(0,240,sx,sy);
for(i=1;i<100;i++)
{
sx=(int)(640.0*dt); sy=(int)(240.0-480.0*y);
lineto(sx,sy);
}
getch();
}

d:\\bc4\\bgi为图形驱动程序的所在位置,根据你的TC目录来定。
全部回答
以经验看来你是要做单片机方面波形输出,dac输出,或者做模拟示波器什么的。 有两种办法: 一是查表法,优点是计算量少,占用ram少,算法简单,缺点是占用储存内存较多,参数比较固定。 查表法的基本思路就是,通过把sin函数进行采样,得到的值记录成一个表,将表以数组的形式放在程序中,通过循环读取数组的值达到查表的目的。 二是计算值法,优缺点跟查表法恰好相反。 计算值法的基本思路是通过特定算法,将特定时间所需的特定值计算出来。 这里给你提供一个计算值法的核心代码,作为指导建议,根据实际情况修调。 double sinwave(double scale,int cycle_time) { int a; double pi = 3.1416; int resolution_ratio = 100;//分辨率,描述采样量,越高的分辨率计算越多 for(a=0;a
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯