#include math.h
站在用戶的角度思考問題,與客戶深入溝通,找到湘陰網(wǎng)站設(shè)計與湘陰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋湘陰地區(qū)。
#include graphics.h /*預(yù)定義庫函數(shù)*/
void circlePoint(int x,int y) /*八分法畫圓程序*/
{
circle(320+x*20,240+y*20,3);
circle(320+y*20,240+x*20,3);
circle(320-y*20,240+x*20,3);
circle(320-x*20,240+y*20,3);
circle(320-x*20,240+y*20,3);
circle(320-x*20,240-y*20,3);
circle(320-y*20,240-x*20,3);
circle(320+y*20,240-x*20,3);
circle(320+x*20,240-y*20,3);
}
void MidBresenhamcircle(int r) /* 中點Bresenham算法畫圓的程序 */
{
int x,y,d;
x=0;y=r;d=1-r; /* 計算初始值 */
while(xy)
{ circlePoint(x,y); /* 繪制點(x,y)及其在八分圓中的另外7個對稱點 */
if(d0) d+=2*x+3; /* 根據(jù)誤差項d的判斷,決定非最大位移方向上是走還是不走 */
else
{ d+=2*(x-y)+5;
y--;
}
x++;
delay(900000);
} /* while */
}
main()
{
int i,j,r,graphmode,graphdriver;
detectgraph(graphdriver,graphmode); initgraph(graphdriver,graphmode," ");
printf("中點Bresenhamcircle算法畫圓的程序\n"); /*提示信息*/
printf("注意 |r|=11");
printf("\n輸入半徑值 r:");
scanf("%d",r);
printf("按任意鍵顯示圖形...");
getch(); cleardevice(); setbkcolor(BLACK);
for(i=20;i=620;i+=20) /*使用雙循環(huán)畫點函數(shù)畫出表格中的縱坐標(biāo)*/
for(j=20;j=460;j++)
putpixel(i,j,2);
for(j=20;j=460;j+=20) n歡迎光臨學(xué)網(wǎng),收藏本篇文章 [1] [2]
$False$
bsp; /*使用雙循環(huán)畫點函數(shù)畫出表格中的橫坐標(biāo)*/
for(i=20;i=620;i++)
putpixel(i,j,2); outtextxy(320,245,"0"); /*原點坐標(biāo)*/
outtextxy(320-5*20,245,"-5");circle(320-5*20,240,2); /*橫坐標(biāo)值*/
outtextxy(320+5*20,245,"5");circle(320+5*20,240,2);
outtextxy(320-10*20,245,"-10");circle(320-10*20,240,2);
outtextxy(320+10*20,245,"10");circle(320+10*20,240,2);
outtextxy(320-15*20,245,"-15");circle(320-15*20,240,2);
outtextxy(320+15*20,245,"15");circle(320+15*20,240,2);
outtextxy(320,240-5*20,"-5");circle(320,240-5*20,2); /*縱坐標(biāo)值*/
outtextxy(320,240+5*20,"5");circle(320,240+5*20,2);
outtextxy(320,240-10*20,"-10");circle(320,240-10*20,2);
outtextxy(320,240+10*20,"10");circle(320,240+10*20,2);
outtextxy(20,10,"The center of the circle is (0,0) "); /*坐標(biāo)軸左上角顯示提示信息*/
setcolor(RED); /*標(biāo)記坐標(biāo)軸*/
line(20,240,620,240); outtextxy(320+15*20,230,"X");
line(320,20,320,460); outtextxy(330,20,"Y");
setcolor(YELLOW);
MidBresenhamcircle(r);
setcolor(BLUE); /*繪制圓*/
circle(320,240,r*20);
setcolor(2);
getch(); closegraph();
}
#line 的作用是改變當(dāng)前行數(shù)和文件名稱,它們是在編譯程序中預(yù)先定義的標(biāo)識符命令。
#line number["filename"]
這是一個冷門的預(yù)處理命令,很少使用。不過他還是有點用的,那就是用在編譯器的編寫中,我們知道編譯器對C 源碼編譯過程中會產(chǎn)生一些中間文件,通過這條指令,可以保證文件名是固定的,不會被這些中間文件代替,有利于進行分析。
line(x1,y1,x2,y2);其中兩個數(shù)為一個坐標(biāo),表示從(x1,y1)畫線到(x2,y2)
這是Turbo C中的函數(shù),其坐標(biāo)參數(shù)應(yīng)該是double類型,也可以使用float或int類型,甚至char類型。
這是編譯器內(nèi)置宏,這些宏定義不僅可以幫助我們完成跨平臺的源碼編寫,靈活使用也可以巧妙地幫我們輸出非常有用的調(diào)試信息。例如:
printf("FILE: %d, ?LINE: %d, %s/n", "__FILE__, __LINE__, ?"這里寫上相關(guān)信息");
ANSI C標(biāo)準(zhǔn)中幾個標(biāo)準(zhǔn)預(yù)定義宏:
__LINE__:在源代碼中插入當(dāng)前源代碼行號;
__FILE__:在源文件中插入當(dāng)前源文件名;
__DATE__:在源文件中插入當(dāng)前的編譯日期
__TIME__:在源文件中插入當(dāng)前編譯時間;
__STDC__:當(dāng)要求程序嚴(yán)格遵循ANSI C標(biāo)準(zhǔn)時該標(biāo)識被賦值為1;
__cplusplus:當(dāng)編寫C++程序時該標(biāo)識符被定義。