C趣味程序百例(01)绘制余弦曲线和直线
2.画余弦曲线和直线
屏幕上显示的是0~360度的cos(x)曲线和直线f(x)=45*(y-1)+31的叠加图。其中图形cos(x)用“*”表示,图形f(x)用“+”表示,图形f(x)的符号用在两个图形的交叉点上。
*问题分析与算法设计
这个问题可以在上面问题的基础上修改。图形叠加的关键是在计算列方向点的坐标后,正确判断同一行中两个图形的位置关系。为此,可以先判断图形的交点,然后分别控制两个不同图形的打印。
*程序注释和说明
# include
# include
void main()
{
double y;
int x,m,n,YY;
for(YY = 0;YY {
y = 0.1 * YY;/*y:屏幕线方向坐标*/
m = acos(1-y)* 10;/* m:COS(x)曲线上Y点对应的屏幕列坐标*/
n = 45 *(Y-1)+31;/*n:直线上Y点对应的列坐标*/
for(x = 0;x if(x = = m & & x = = n)printf("+");/* Print "+"*/
else if (x = = n)当直线与cos(x)相交时printf("+");/*打印无交集的直线图*/
else if(x = = m | | x = = 62-m)printf(" * ");/*不相交时打印cos(x)图形*/
else printf(" ");/*否则,打印空*/
printf(" \ n ");
}
}
0条评论