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

字號:

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");
     }
    }