看这1篇时如果不会绘制正弦/余弦曲线可以先看看这1篇哦:控制台绘制正弦/余弦曲线
那末,如果想要同时显示的话,我们可能需要在同1行中绘制出3个或4个点了。我的思路比较简略,不过算法看上去非常非常不整洁,还望得到大家的帮助……
我通过Y等于2分之根号2和负2分之根号2和Y轴将全部图形分成4层,从上往下顺次绘制。具体看代码啦……
#include <stdio.h>
#include <math.h>
int main()
{
double y;
int x,k1,k2;
for(y=1;y>=-1;y-=0.1)
{
k1=acos(y)*10;
k2=asin(y)*10;
if(k1<k2&&k2>=0)
{
for(x=1;x<k1;x++)
printf(" ");
printf("*");
for(x=k1+1;x<k2;x++)
printf(" ");
printf("*");
for(;x<30-k2;x++)
printf(" ");
printf("*");
for(;x<62-k1;x++)
printf(" ");
printf("*
");
}
else if(k2<k1&&1<=k2&&k2<=15)
{
for(x=1;x<k2;x++)
printf(" ");
printf("*");
for(x=k2+1;x<k1;x++)
printf(" ");
printf("*");
for(;x<30-k2;x++)
printf(" ");
printf("*");
for(x=30-k2;x<62-k1;x++)
printf(" ");
printf("*
");
}
else if(k1<(30-k2)&&(30-k2)<(62-k1)&&-15<=k2&&k2<=-1)
{
for(x=1;x<k1;x++)
printf(" ");
printf("*");
for(;x<31-k2;x++)
printf(" ");
printf("*");
for(;x<62-k1;x++)
printf(" ");
printf("*");
for(;x<61+k2;x++)
printf(" ");
printf("*
");
}
else if((62-k1)<(31-k2)&&-15<=k2&&k2<=-1)
{
for(x=1;x<k1;x++)
printf(" ");
printf("*");
for(;x<62-k1;x++)
printf(" ");
printf("*");
for(;x<31-k2;x++)
printf(" ");
printf("*");
for(;x<61+k2;x++)
printf(" ");
printf("*
");
}
}
return 0;
}
大家有甚么更好的想法欢迎留言啊~
【这里还是源码,不需要资源积分】
为使本文得到斧正和发问,转载请注明出处:
http://blog.csdn.net/nomasp