2.繪制余弦曲線和直線
在屏幕上顯示0~360度的cos(x)曲線與直線f(x)=45*(y-1)+31的迭加圖形。其中cos(x)圖形用“*”表示,f(x)用“+”表示,在兩個圖形相交的點上則用f(x)圖形的符號。
*問題分析與算法設(shè)計
本題可以在上題的基礎(chǔ)上進行修改。圖形迭加的關(guān)鍵是要在分別計算出同一行中兩個圖形的列方向點坐標(biāo)后,正確判斷相互的位置關(guān)系。為此,可以先判斷圖形的交點,再分別控制打印兩個不同的圖形。
*程序注釋與說明
#include
#include
void main()
{
double y;
int x,m,n,yy;
for(yy=0;yy<=20;yy++) /*對于第一個y坐標(biāo)進行計算并在一行中打印圖形*/
{
y=0.1*yy; /*y:屏幕行方向坐標(biāo)*/
m=acos(1-y)*10; /*m: cos(x)曲線上y點對應(yīng)的屏幕列坐標(biāo)*/
n=45*(y-1)+31; /*n: 直線上y點對應(yīng)的列坐標(biāo)*/
for(x=0;x<=62;x++) /*x: 屏幕列方向坐標(biāo)*/
if(x==m&&x==n) printf("+"); /*直線與cos(x)相交時打印“+”*/
else if(x==n) printf("+"); /*打印不相交時的直線圖形*/
else if(x==m||x==62-m) printf("*"); /*打印不相交時的cos(x)圖形*/
else printf(" "); /*其它情況打印空格*/
printf("\n");
}
}
在屏幕上顯示0~360度的cos(x)曲線與直線f(x)=45*(y-1)+31的迭加圖形。其中cos(x)圖形用“*”表示,f(x)用“+”表示,在兩個圖形相交的點上則用f(x)圖形的符號。
*問題分析與算法設(shè)計
本題可以在上題的基礎(chǔ)上進行修改。圖形迭加的關(guān)鍵是要在分別計算出同一行中兩個圖形的列方向點坐標(biāo)后,正確判斷相互的位置關(guān)系。為此,可以先判斷圖形的交點,再分別控制打印兩個不同的圖形。
*程序注釋與說明
#include
#include
void main()
{
double y;
int x,m,n,yy;
for(yy=0;yy<=20;yy++) /*對于第一個y坐標(biāo)進行計算并在一行中打印圖形*/
{
y=0.1*yy; /*y:屏幕行方向坐標(biāo)*/
m=acos(1-y)*10; /*m: cos(x)曲線上y點對應(yīng)的屏幕列坐標(biāo)*/
n=45*(y-1)+31; /*n: 直線上y點對應(yīng)的列坐標(biāo)*/
for(x=0;x<=62;x++) /*x: 屏幕列方向坐標(biāo)*/
if(x==m&&x==n) printf("+"); /*直線與cos(x)相交時打印“+”*/
else if(x==n) printf("+"); /*打印不相交時的直線圖形*/
else if(x==m||x==62-m) printf("*"); /*打印不相交時的cos(x)圖形*/
else printf(" "); /*其它情況打印空格*/
printf("\n");
}
}