當前位置:首頁 » 編程語言 » c語言畫圓面
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言畫圓面

發布時間: 2023-05-03 17:42:19

① 怎麼用c語言畫一個圓形急~

#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y–)
{
m=2.5*sqrt(100-y*y); /*計算行y對應的列坐標m,2.5是屏幕縱橫比調節系數因為屏幕的
行距大於列距,不進行調節顯示出來的將是橢圓*/
for(x=1;x<30-m;x++) printf(" "); /*圖形左側空白控制*/
printf("*"); /*圓的左側*/
for(;x<30+m;x++) printf(" "); /*圖形的空心部分控制*/
printf("*\n"); /*圓的右側*/
}
return 0;
}

② C語言中關於畫圓程序

#include<stdio.h>
#include<math.h>
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--) //表示圖形的第y行,通過for循環列印所有行
{
m=2.5*sqrt(100-y*y); //用y作為自變數,根據弦長與縱坐標y的函數關系計算出此行上的弦 長的一半也就是兩個星形符號之間的距離的一半,並用m表示。
for(x=1;x<50-m;x++) //以50個字元長度為基準根據弦長來確定每行左數第一個星形的位 置,此位置前全印空格
printf(" ");
printf("*");
for(;x<50+m;x++) //以50個字元寬度為基準來確定每行第二個星形的位置
printf(" ");

printf("*\n");
}
}
//此程序列印的只是個大概的圓形,因為運行輸出窗口裡,相鄰的行距和鄰字元的列距是不相等的,所以語句 m=2.5*sqrt(100-y*y);中的2.5是用來修正此誤差的。可根據具體運行平台適當修改。 如果還看不懂,再問

③ 怎樣用c語言畫一個圓可以訪問graphics.h庫!circle函數怎樣用

graphics.h 是 tc 下的,vc 下你安裝了 easyx 也就有了,然後畫圓這樣:
#include <graphics.h> // 引用圖形庫
#include <conio.h>
void main()
{
initgraph(640, 480); // 初始化圖形窗口
circle(100, 100, 60); // 畫圓,圓心(100, 100),半徑 60
getch(); // 按任意鍵繼續
closegraph(); // 關閉圖形界面
}

④ c語言畫圓

stdio.h是基本輸入輸出函數庫,不包括圖形庫,不能畫圖。
若要畫圓作圖,需要包含graphics.h圖形函數庫,並調用函數circle()來完成。

⑤ 用C語言寫出畫一個圓形的代碼

可以參考下面的代碼:

#include<math.h>

main()

{

double y;

int x,m;

for(y=10;y>=-10;y--)

{

m=2.5*sqrt(100-y*y);

for(x=1;x<50-m;x++)

printf(" ");

printf("*");

for(;x<50+m;x++)

printf(" ");

printf("* ");

}

}

(5)c語言畫圓面擴展閱讀:

for循表達式為:for(單次表達式;條件表達式;末尾循環體){中間循環體;}。

其中,表示式皆可以省略,但分號不可省略,因為「;」可以代表一個空語句,省略了之後語句減少,即為語句格式發生變化,則編譯器不能識別而無法進行編譯。for循環小括弧里第一個「;」號前為一個為不參與循環的單次表達式。

⑥ 怎樣用C語言畫個圓

如果用tc,有自己的繪圖函數
用vc也有自己的畫圖方式

⑦ c語言的畫圓代碼

假設圓心點是(x0,y0),半徑是r
for(x=x0-r;x<=x0+r;x+=o.1)
for(y=y0-r;x<=y0+r;y+=o.1)
line(x,y,x0,y0);

⑧ 怎麼用c語言畫出一個隨時間變化的圓形

  1. circle函數是TURBO C提供的圖形介面,用來畫圓。不屬於標准庫函數,不具備可移植性。
    函數名:circle
    功 能: 在給定半徑以(x, y)為圓心畫圓
    用 法:void far circle(int x, int y, int radius)

  2. 隨時間變化,可以攜此用cleardevice函數清除屏幕,不斷畫半徑不同的圓。看起來就像是一個隨時間變化的圓形。

    函數名: cleardevice
    功 能: 清除圖形屏幕
    用 法: void far cleardevice(void);
    常式:

    #include<graphics.h>
    #include<stdlib.h>指改
    #include<stdio.h>
    #include<conio.h>
    intmain(void)
    {
    /*requestautodetection*/
    intgdriver=DETECT,gmode,errorcode;
    intmidx,midy;
    intradius=100;
    /**/
    initgraph(&gdriver,&gmode,"");
    /*readresultofinitialization*/
    errorcode=graphresult();
    if(errorcode!=grOk)/*anerroroccurred*/
    {
    printf("Graphicserror:%s ",grapherrormsg(errorcode));
    printf("Pressanykeytohalt:");
    getch();
    exit(1);/*terminatewithanerrorcode*/
    }
    midx=getmaxx()/2;
    midy=getmaxy()/2;
    setcolor(getmaxcolor());
    for(i=0;i<1000000;i++)if(i%50000==0){
    辯逗迅cleardevice();/*cleanthescreen*/
    circle(midx,midy,radius--);/*drawthecircle*/
    }
    getch();
    closegraph();
    return0;
    }

⑨ 怎樣用C語言畫圓

#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
char arg[50]={0};
arg[0]= '\ " ';
strcpy(arg+1,argv[0]);
int len=int(strlen(arg));
arg[len]= '\ " ';

HWND hWnd=FindWindow(NULL,arg); //找到程序運行窗口的句柄
HDC hDC=GetDC(hWnd);//通過窗口句柄得到該窗口的設備場境句柄
HPEN hPen,hOldPen; //畫筆
int i=0;

for(;i <500;++i)
SetPixel(hDC,10+i,10+i,0x0000ff);//用畫點的辦法畫一根線,最後一個參數是顏色(32位)

hPen=CreatePen(PS_SOLID,2,0x00ff00);//生成綠色畫筆
hOldPen=(HPEN)SelectObject(hDC,hPen);//把畫筆引入設備場境

MoveToEx(hDC,20,50,NULL); //設置畫線起點
LineTo(hDC,520,550); //畫到終點

Arc(hDC,100,100,300,300,350,500,350,500);//畫圓

SelectObject(hDC,hOldPen);
ReleaseDC(hWnd,hDC);

//下面是對比,表明它確實是控制台程序

printf( "hello console ");
system( "pause ");
return 0;

}

⑩ 求:C語言,圓的畫法!

圓弧的掃描轉換演算法

(1)圓的特徵

圓被定義為到給定中心位置(xc,yc)距離為r的點集。圓心位於原點的圓有四條對稱軸x=0,y=0,x=y和x=-y。若已知圓弧上一點(x,y),可以得到其關於四條對稱軸的其它7個點,這種性質稱為圓的八對稱性。因此,只要掃描轉換八分之一圓弧,就可以求出整個圓弧的象素集。

圓心在0,0點圓周生成時的對稱變換(參見:P.26圖3-4)

顯示圓弧上的八個對稱點的演算法:

void CirclePoints(int x,int y,int color)

{

drawpixel(x,y,color); drawpixel(y,x,color);

drawpixel(-x,y,color); drawpixel(y,-x,color);

drawpixel(x,-y,color); drawpixel(-y,x,color);

drawpixel(-x,-y,color); drawpixel(-y,-x,color);

}

(2)中點畫圓法(參見:P.29—P.30)

如果我們構造函數 F(x,y)=x2+y2-R2,則對於圓上的點有F(x,y)=0,對於圓外的點有F(x,y)>0,對於圓內的點F(x,y)<0 。與中點畫線法一樣,構造判別式:

d=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2

若 d<0,則應取P1為下一象素,而且再下一象素的判別式為:

d=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3

若d≥0,則應取P2為下一象素,而且下一象素的判別式為

d=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+2(xp-yp)+5

我們這里討論的第一個象素是(0,R),判別式d的初始值為:

d0=F(1,R-0.5)=1.25-R

圖2.2.1 當前象素與下一象素的候選者

中點畫圓演算法:

MidPointCircle(int r int color)

{

int x,y;

float d;

x=0; y=r; d=1.25-r;

circlepoints (x,y,color);

while(x<=y)

{

if(d<0) d+=2*x+3;

else { d+=2*(x-y)+5; y--;}

x++;

circlepoints (x,y,color);

}

}

為了進一步提高演算法的效率,可以將上面的演算法中的浮點數改寫成整數,將乘法運算改成加法運算,即僅用整數實現中點畫圓法。

(3)例:半徑為6,利用中點畫圓法演算法所畫的點

(4)中點畫圓法圖示