C趣味程序百例(01)繪制余弦曲線和直線

字號(hào):

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