C语言中如何描绘正弦曲线?
发布网友
发布时间:2022-04-18 05:59
我来回答
共3个回答
热心网友
时间:2022-04-18 07:29
NO!思路和方法那是完全的不对啊,对于普通的8位单片机来说,都是不带硬件除法器的,而且更不支持浮点运算,所有这些都将需要软件来完成,除非你用的是高端的32位处理器,比如STM32的或者是DSP之类的,才可以从理论上计算得到正弦,方法是采用多项式进行数值计算,你可以参考一下《数值分析》中关于正弦的求解算法
但是对于常规的单片机,采用最好的方法是查表,事实上这种求解正弦的方法早就被采用了,采用查表和插值的方法,可以完全的避免浮点和除法计算,这才是你需要采用的思路
热心网友
时间:2022-04-18 08:47
单片机完全无法承受正弦的运算……
查表法 如果嫌表太大 可以查表加插值
热心网友
时间:2022-04-18 10:21
#include <iostream>
using namespace std;
void main()
{
const double PI = 3.1615926;
bool point[80][10] = {false};
int period, swing;
//cout << "Input the period [1-9]:";
//cin >> period;
//cout << "Input the swing [1-9]:";
//cin >> swing;
period = 80;
swing = 5;
int y = 0;
for (int i = 0; i < 80; i ++)
{
y = -(int)(swing * sin((2 * PI) * (i % period)/(period * 1.0)));
y += 5;
point[i][y] = true;
}
for (int i = 0; i < 10; i ++)
{
for (int j = 0; j < 80; j ++)
{
if (point[j][i])
cout << "*";
else
cout << " ";
}
cout << "\n";
}
}
参考资料:http://topic.csdn.net/t/20060404/21/4663219.html